在Java中将字符串转换为代码
可能重复:在Java中将字符串转换为代码,java,Java,可能重复: 我有一个功能: fun1() { System.out.print("hello"); } 我想从用户或文件中读取字符串,如果出现字符串“fun1()”,我将调用fun1 我不想用switch语句来实现这一点,因为我有很多函数 有没有办法使用字符串调用函数?您可以使用反射来实现这一点。但是您提供的方法不是java。缺少返回类型。你为什么要这样做?这里有一个链接,如果你走这条路线:你可以在这里使用反射: Method method = MyClass.class.getDec
我有一个功能:
fun1() {
System.out.print("hello");
}
我想从用户或文件中读取字符串,如果出现字符串“fun1()”
,我将调用fun1
我不想用switch语句来实现这一点,因为我有很多函数
有没有办法使用字符串调用函数?您可以使用反射来实现这一点。但是您提供的方法不是java。缺少返回类型。你为什么要这样做?这里有一个链接,如果你走这条路线:你可以在这里使用反射:
Method method = MyClass.class.getDeclaredMethod("fun1", new Class[] {});
method.invoke(this, null);
但是,首先考虑,如果可以避免使用反射,那么就这样做。反射带来了许多缺点,例如难以调试和呈现自动重构工具(如Eclipse中的工具)实际上是无用的
重新思考你的设计;通过更清晰的类分解、更好的多态性等,您可能可以更好地解决问题。通常,这是一个坏主意。你的目标是什么?我认为这将是与此相同的方法;