我正在尝试在IntelliJ IDEA中为我的项目创建一个包.我命名包"com.mydomain.switch"Switch作为项目名称,但是只要输入"switch"就会显示错误.
我唯一能想到的是'switch'是一个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) 我有一个正在异步更新的 HashMap。我需要执行涉及地图的操作,这些操作要求地图在任务期间不改变状态,例如根据地图的内容对值进行排序。
有没有一种方法可以锁定映射,以便只能进行读取,从而阻塞所有写入线程,因此在映射解锁后,所有修改都可以发生?当我使用 ConcurrentHashMap 时,锁需要能够允许多个线程同时写入,并且我想利用 ConcurrentHashMap 的优势。
我有一个负责发送和接收消息的类。消息是通过 using 发送的myInstance.send(message, channel),消息是通过注册MessageListener一个频道来收听的。
我通常只是将其称为相当通用的东西,例如 MessageManager,但我最近阅读了命名类 - 如何避免将所有内容都称为“<WhatEver>Manager”?这让我试图找到另一个名字。我最接近一个好名字的是 MessageDispatcher,它并没有真正传达也接收消息的事实。这种性质的类是否有任何常用名称?
node-gyp 是作为我使用过的模块之一的依赖项安装的。从那以后,每次我运行一个npm install命令时,我都会收到大约一分钟的控制台发送垃圾邮件,这些错误似乎是由 node-gyp 引起的。
我不想与 node-gyp 有任何关系,但它似乎抵制任何卸载它的尝试。我尝试使用npm remove node-gyp,但没有结果。
我最近发现自己使用了一些ExecutorServices(SingleThreadScheduledExecutor和newFixedThreadPool),但我没有任何好名字.
是否有任何关于命名这些对象的指南或约定?我看过用于SingleThreadScheduledExecutors的名称如"workerThread",这是正确的,因为它们不完全是线程吗?
我正在开发命令处理程序,其中每个命令可以无限地包含子命令。所有命令都由“ CommandManager”在根级别进行管理,该命令管理器采用用户输入解析选项,然后找到正确的命令并将输入传递给它。由于CommandManager和Command都具有类似的获取和存储指定命令的方式,并且由于这两个类都非常混乱,因此我想将查找和存储命令的逻辑分解为一个通用的超类,但是,我不认为描述性名称的名称。
我之所以尝试使CommandMagager和Command都扩展另一个类的原因是,命令管理器在根级别上的行为类似于命令。命令实际上不包含任何处理命令的逻辑,它们只是提供一种注册和检索具有特定名称的命令的方法。
是否有任何常规约定可以帮助我找到名称,或者这是解决问题的错误方法?
我有一个方法,用于将对象的映射转换为人类可读的键值对.为此,我需要一些字符,如引号,空格和反斜杠,默认情况下将被解释为控制字符,如果在键或值中使用,则需要转义.由于不会有任何重复,我需要快速查找,我假设一个集合将是最好的选择,但作为(对我的知识)你不能锁定一个集合,它可能会被意外更改.
将HashSet作为常量是否是个好主意,有没有办法使它成为不可变的,遵循常量命名约定(UPPER_CASE)以及如何在其中放置初始值是一个好主意?
我有一个应用程序,用户可以在其中玩多种类型的游戏.每个游戏都扩展了Game类,其中包含与游戏相关的各种事物.每个游戏还具有延伸的相关联的用户类User(包含电子邮件,用户名等),例如ChessUser和ScrabbleUser含有统计和关于游戏的其他用户的信息.
在每个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) 我目前在一个项目中有几个“经理”类,但是看到了很多建议您不要使用经理类,但在我的情况下似乎没有提供其他选择的东西。我有一个ClickManager,其中包含“可单击”对象的映射,以及一个ConfigManager,它负责加载和保存配置文件,因为config类来自我正在使用的API,并且太笨而无法加载自身。
在这些情况下,使用“经理”有哪些替代方案?