【发布时间】:2014-11-02 23:08:50
【问题描述】:
我的问题是:如何创建指定类的所有常量的列表?
这可以通过简单的方式实现吗?或者我只需要为此编写自己的(有点简单的)解决方案?
让我展示一些代码:
public class StateOfSomeProcess {
private final static String STATE_A = "State A";
private final static String STATE_B = "State B";
private final static String STATE_C = "State C";
private final static String STATE_D = "State D";
public StateOfSomeProcess() {...}
public List<String> getListOfAllStates() {
List<String> list = new ArrayList<String>();
...
//I wish there was a method like this:
//list = this.getAllConstantsFromClass();
...
return list;
}
}
我知道enums,但它似乎不符合我的需要。
如果我的问题不清楚或需要改进,请随时告诉我。
【问题讨论】:
-
你熟悉“反射”这个概念吗? docs.oracle.com/javase/tutorial/reflect
-
反射会做得很好。此外,您可以将所有这些常量添加到静态数组: private static String[] array = new String[]{STATE_A,STATE_B,STATE_C,STATE_D};
-
很遗憾,不,我从未听说过反射,但我会检查一下。我是Java的初学者。感谢您的帮助:)
-
恕我直言,将问题标记为重复并对其进行否决,有点苛刻。特别是考虑到OP的质量(高)和经验(低)。到Enums VS Classes VS Interfaces 的给定链接甚至没有提供问题的答案。
-
谢谢,希勒。对其他人:明确引用我在那个“重复问题”中的问题的答案。我看过5次,然后问。我建议您再次阅读我要查找的内容。