【发布时间】:2016-02-23 11:02:36
【问题描述】:
我有这个 Java 代码 sn-p:
try {
Class.forName(command);
} catch (ClassNotFoundException ex) {
}
其中“command”是在运行时手动输入的字符串。为了这个问题,我们假设用户输入“Foo”。
它检查是否有一个名为 Foo 的类。检查后我想做的事情是从 Foo 调用一个方法。
Foo.execute();
如何在不为我的每个班级制作特殊的“if”案例的情况下做到这一点?有没有办法使用别名之类的东西, ($command).execute() 其中 $command 将是(在这种情况下)我的 Foo 类?
【问题讨论】:
-
如果您想引用可以作为单个实体输入的类,我会说使用超类。所以,每个可以输入的类都扩展或实现了 InputClazz.class 什么的
-
您好,请查看命令模式。只需将您的命令存储在 HashMap
中。 :javaworld.com/article/2077569/core-java/… -
Marcinek 有最好的主意,如果可能的话,我会走那条路。您能否更新您的问题以反映您在实施此方法方面有多少余地?