我是一名Java新手,所以我的问题可能看起来很简单。但我需要你们的指导。
这是我的问题:我有一个包含大量方法的类,我想将这些方法提供给用户在combox中进行选择,根据他们的选择将运行一些代码。现在我可以通过编写开关选择方法来做到这一点。根据选择,我使用开关来运行特定的方法。
但我的功能列表已接近200,所以我的问题是:有没有更明智的方法来做到这一点。 只要指出正确的方向,我会尝试做其余的事。
答案 0 :(得分:8)
您可以使用reflection,具体为:Class.getMethods()
或Class.getDeclaredMethods()
。
确保你理解它们之间的差异(阅读链接的javadocs),如果你不这样做 - 不要害怕问。
答案 1 :(得分:2)
我认为研究Java Reflection是最好的起点,假设我已经理解了你想要做的事情。
答案 2 :(得分:2)
您可以使用Reflection来列出方法并调用它们
答案 3 :(得分:1)
您可以使用反射(您可以在Google上找到大量信息),但向用户简单展示您的方法并不是一个好习惯。在更复杂的应用程序中,您应该尝试将用户想要的表示和真实执行分开
答案 4 :(得分:0)
每个选择都可以用一个Enum来表示,它是一组函数指针:
public enum FunctionPointer {
F1 {
public SomeObject doFunction(args) {
YourClass.doMethod(args);
}
},
//More enum values here...
}
语法需要一些工作,但在客户端你可以调用
FunctionPointer.F1.doFunction("abc");