列表函数作为Java中的选择

时间:2012-06-13 13:52:39

标签: java

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

这是我的问题:我有一个包含大量方法的类,我想将这些方法提供给用户在combox中进行选择,根据他们的选择将运行一些代码。现在我可以通过编写开关选择方法来做到这一点。根据选择,我使用开关来运行特定的方法。

但我的功能列表已接近200,所以我的问题是:有没有更明智的方法来做到这一点。 只要指出正确的方向,我会尝试做其余的事。

5 个答案:

答案 0 :(得分:8)

您可以使用reflection,具体为:Class.getMethods()Class.getDeclaredMethods()

确保你理解它们之间的差异(阅读链接的javadocs),如果你不这样做 - 不要害怕问。

答案 1 :(得分:2)

我认为研究Java Reflection是最好的起点,假设我已经理解了你想要做的事情。

答案 2 :(得分:2)

答案 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");