我在将类文件放入 HashMap 时遇到问题。
我正在尝试创建一个将注册命令的类(以便稍后使用它们)
public class CommandRegister {
static HashMap<String, ICommand> commands = new HashMap<String, ICommand>();
public static void addCommand(ICommand c){
commands.put(c.getName(), c);
}
}
这是我创建的接口(interface)(ICommand)
public interface ICommand {
public String getName();
public void run(Event ev);
}
和一个命令类
public class Help implements ICommand{
@Override
public String getName() {
return "help";
}
@Override
public void run(Event ev) {
return;
}
}
如果我现在在我的主类中运行此代码,它将无法工作。
public class Main {
public static void main(String[] args){
registerCommand();
}
private static void registerCommand() {
CommandRegister.addCommand(Help);
}
}
最佳答案
您需要使用“new”运算符创建一个 Help 实例:
public class Main {
public static void main(String[] args){
registerCommand();
}
private static void registerCommand() {
CommandRegister.addCommand(new Help());
}
}
关于java - 无法注册类(class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41074958/