Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中将字符串转换为代码_Java - Fatal编程技术网

在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中的工具)实际上是无用的


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

通常,这是一个坏主意。你的目标是什么?我认为这将是与此相同的方法;