将String转换为Java中的代码

Or *_*r K 7 java

可能重复:
当方法名称为字符串时,如何调用java方法?
如何以编程方式编译和实例化Java类?

我有一个功能:

fun1() {
  System.out.print("hello");
}
Run Code Online (Sandbox Code Playgroud)

我想从用户或文件中读取一个字符串,如果"fun1()"出现该字符串,我会调用fun1.

我不想用switch语句来做这个,因为我有很多功能.

有什么方法可以使用字符串调用函数吗?

Rei*_*eus 5

可以在这里使用反射:

Method method = MyClass.class.getDeclaredMethod("fun1", new Class[] {});
method.invoke(this, null);
Run Code Online (Sandbox Code Playgroud)

但是,首先考虑一下,如果你可以避免使用反射,那么就做.反射带来了许多缺点,例如难以调试和渲染自动重构工具(例如Eclipse中的那些工具)实际上无用.

重新思考你的设计; 你可以通过更清晰的类分解,更好的多态性等来更好地解决问题.