假设我希望我的用户在字符串中输入命令:
String command = scan.nextLine();
他们输入类似object.function()
的内容。我怎么称呼他们输入的功能?
答案 0 :(得分:2)
使用反射按名称查找和调用特定对象的方法。
这会帮助你: http://docs.oracle.com/javase/tutorial/reflect/member/methodInvocation.html
类似的东西:
Class c = Class.forName("targetName");
Object o = c.newInstance();
OR
c = myExistingObj.getClass();
Method m = c.getDeclaredMethod("getSomething");
m.invoke(o, <params>);
答案 1 :(得分:1)
如果函数存在于代码中的某处,请使用:
ActivateUserDefAction.class.getMethod("method", null).invoke(this, null);
答案 2 :(得分:1)
您可能想尝试Janino as a script evaluator,它可以动态编译,加载和运行Java代码。
答案 3 :(得分:-1)
我会使用if else语句或(ick)switch case语句。由于编译了java,你不能只编写代码并让java执行它。
例如:
Object duck = new Object();
String userInput = System.in.read();
if (userInput = "duck.quack();"){
//do something
duck.quack();
}
else if (userInput = "duck.fly();"){
//do something else
duck.fly();
}
//etc.