列出指定类的所有常量

ber*_*cik 4 java constants list

我的问题是:如何创建指定类的所有常量的列表?

这可能以简单的方式实现吗?或者我只需要为此编写我自己的(有点简单的)解决方案?

让我展示一些代码:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道enums,但它似乎不符合我的需要。如果我的问题不清楚或需要改进,请随时告诉我。

Hil*_*lle 5

你可以写

private static List<String> getListOfAllStates() {
    List<String> list = new ArrayList<String>();

    for (Field field : StateOfSomeProcess.class.getDeclaredFields()) {
        int modifiers = field.getModifiers(); 
        if( Modifier.isStatic(modifiers) && Modifier.isFinal(modifiers) ) {
            list.add(field.getName());
        }
    } 
    return list;
}
Run Code Online (Sandbox Code Playgroud)