小编use*_*702的帖子

无法创建包IntelliJ IDEA

我正在尝试在IntelliJ IDEA中为我的项目创建一个包.我命名包"com.mydomain.switch"Switch作为项目名称,但是只要输入"switch"就会显示错误.

我唯一能想到的是'switch'是一个Java关键字,是这种情况吗?如果是这样我该怎么办呢?

java packages intellij-idea

5
推荐指数
1
解决办法
3864
查看次数

在try块中使用return(Java)

我有一个try块,用于尝试运行数据库查询,还有一个finally块,用于释放数据库资源.如果数据库中不存在值,则返回null.

在try块中返回是个好主意吗?

一些示例代码:

    try {
        if (!jedis.exists(name)) {
            return null; // Is this a good idea?
        }

        // Do database related stuff...
    } catch (JedisConnectionException e) {
        // Fix any problems that happen
    } finally {
        // Return all objects to pools and clean up
    }
Run Code Online (Sandbox Code Playgroud)

java

5
推荐指数
1
解决办法
1530
查看次数

锁定写入 HashMap

我有一个正在异步更新的 HashMap。我需要执行涉及地图的操作,这些操作要求地图在任务期间不改变状态,例如根据地图的内容对值进行排序。

有没有一种方法可以锁定映射,以便只能进行读取,从而阻塞所有写入线程,因此在映射解锁后,所有修改都可以发生?当我使用 ConcurrentHashMap 时,锁需要能够允许多个线程同时写入,并且我想利用 ConcurrentHashMap 的优势。

java concurrency multithreading

3
推荐指数
1
解决办法
4681
查看次数

消息发送者/接收者的名称

我有一个负责发送和接收消息的类。消息是通过 using 发送的myInstance.send(message, channel),消息是通过注册MessageListener一个频道来收听的。

我通常只是将其称为相当通用的东西,例如 MessageManager,但我最近阅读了命名类 - 如何避免将所有内容都称为“<WhatEver>Manager”?这让我试图找到另一个名字。我最接近一个好名字的是 MessageDispatcher,它并没有真正传达也接收消息的事实。这种性质的类是否有任何常用名称?

java naming-conventions

3
推荐指数
1
解决办法
1810
查看次数

卸载 node-gyp

node-gyp 是作为我使用过的模块之一的依赖项安装的。从那以后,每次我运行一个npm install命令时,我都会收到大约一分钟的控制台发送垃圾邮件,这些错误似乎是由 node-gyp 引起的。

我不想与 node-gyp 有任何关系,但它似乎抵制任何卸载它的尝试。我尝试使用npm remove node-gyp,但没有结果。

node.js npm node-gyp

3
推荐指数
1
解决办法
1万
查看次数

ExecutorService命名约定Java

我最近发现自己使用了一些ExecutorServices(SingleThreadScheduledExecutor和newFixedThreadPool),但我没有任何好名字.

是否有任何关于命名这些对象的指南或约定?我看过用于SingleThreadScheduledExecutors的名称如"workerThread",这是正确的,因为它们不完全是线程吗?

java multithreading naming-conventions

1
推荐指数
1
解决办法
1169
查看次数

收集命令对象的名称

我正在开发命令处理程序,其中每个命令可以无限地包含子命令。所有命令都由“ CommandManager”在根级别进行管理,该命令管理器采用用户输入解析选项,然后找到正确的命令并将输入传递给它。由于CommandManager和Command都具有类似的获取和存储指定命令的方式,并且由于这两个类都非常混乱,因此我想将查找和存储命令的逻辑分解为一个通用的超类,但是,我不认为描述性名称的名称。

我之所以尝试使CommandMagager和Command都扩展另一个类的原因是,命令管理器在根级别上的行为类似于命令。命令实际上不包含任何处理命令的逻辑,它们只是提供一种注册和检索具有特定名称的命令的方法。

是否有任何常规约定可以帮助我找到名称,或者这是解决问题的错误方法?

java oop naming-conventions

1
推荐指数
1
解决办法
469
查看次数

使用HashSet作为常量

我有一个方法,用于将对象的映射转换为人类可读的键值对.为此,我需要一些字符,如引号,空格和反斜杠,默认情况下将被解释为控制字符,如果在键或值中使用,则需要转义.由于不会有任何重复,我需要快速查找,我假设一个集合将是最好的选择,但作为(对我的知识)你不能锁定一个集合,它可能会被意外更改.

将HashSet作为常量是否是个好主意,有没有办法使它成为不可变的,遵循常量命名约定(UPPER_CASE)以及如何在其中放置初始值是一个好主意?

java constants hashset

0
推荐指数
1
解决办法
989
查看次数

指定子类中的集合类型

我有一个应用程序,用户可以在其中玩多种类型的游戏.每个游戏都扩展了Game类,其中包含与游戏相关的各种事物.每个游戏还具有延伸的相关联的用户类User(包含电子邮件,用户名等),例如ChessUserScrabbleUser含有统计和关于游戏的其他用户的信息.

在每个Game课程中,我需要一个当前正在玩游戏的所有用户的列表.由于所有游戏都需要这个列表,我想将它放在User课堂上,但因为它包含玩游戏的用户类型(ChessGame会包含ChessUsers列表)我不能在没有检索时将其转换为我会做的而不是做.有没有一种方法可以在不转换检索值的情况下执行此操作?

一些示例代码:

public class Game {
  private List<Player> players;

  public Player getPlayer(int index) {
    return players.get(index);
  }
}

public class Player {
  private String username;
  private String email;
}

public class ChessGame extends Game {
  // getPlayer now needs to return a ChessPlayer, hopefully without casting
}

public class ChessPlayer extends Player {
  private int checkmates;
}
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
55
查看次数

Java“经理”的替代品

我目前在一个项目中有几个“经理”类,但是看到了很多建议您不要使用经理类,但在我的情况下似乎没有提供其他选择的东西。我有一个ClickManager,其中包含“可单击”对象的映射,以及一个ConfigManager,它负责加载和保存配置文件,因为config类来自我正在使用的API,并且太笨而无法加载自身。

在这些情况下,使用“经理”有哪些替代方案?

java oop

-1
推荐指数
1
解决办法
766
查看次数