如何将字符串中的文本用作方法?

时间:2012-02-13 01:31:06

标签: java string function

假设我希望我的用户在字符串中输入命令:

String command = scan.nextLine();

他们输入类似object.function()的内容。我怎么称呼他们输入的功能?

4 个答案:

答案 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.
  • 已修改为添加代码示例