Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.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,我是Java新手,所以我的问题看起来很简单。但我需要你们的指导 这里是我的问题:我有一个类和一堆方法,我想让用户在combox中选择这些方法,根据他们的选择,一些代码将运行。现在我可以通过编写开关选择方法来实现这一点。其中,基于选择,我使用开关来运行特定的方法 但是我的函数列表很长,接近200个,所以我想问你的问题是:有没有更聪明的方法来实现这一点。 只要给我指一个正确的方向,剩下的我会尽力去做。你可以使用,特别是:或 如果您不了解它们之间的差异,请确保您了解它们之间的差异(请阅读链接的java

我是Java新手,所以我的问题看起来很简单。但我需要你们的指导

这里是我的问题:我有一个类和一堆方法,我想让用户在combox中选择这些方法,根据他们的选择,一些代码将运行。现在我可以通过编写开关选择方法来实现这一点。其中,基于选择,我使用开关来运行特定的方法

但是我的函数列表很长,接近200个,所以我想问你的问题是:有没有更聪明的方法来实现这一点。 只要给我指一个正确的方向,剩下的我会尽力去做。

你可以使用,特别是:或


如果您不了解它们之间的差异,请确保您了解它们之间的差异(请阅读链接的javadocs),不要害怕询问。

我认为研究Java反射是最好的开始,假设我已经正确理解了您想要做的事。

您可以使用反射来列出方法和调用它们


你可以使用反射(你可以在谷歌上找到很多信息),但简单地向用户展示你的方法并不是一个好的做法。在更复杂的应用程序中,您应该尝试将用户所需内容的表示和实际执行分开

每个选择都可以由一个枚举表示,该枚举构建为一组函数指针:

public enum FunctionPointer {
F1 {
    public SomeObject doFunction(args) {
        YourClass.doMethod(args);
    }
},
//More enum values here...
}
语法需要做一些工作,但是在客户端,您可以调用

FunctionPointer.F1.doFunction("abc");

这与你的switch语句并没有什么不同,但我不喜欢思考那些没有它也可以完成的事情。