将类中的所有静态变量都放入数组/列表中

Cha*_*dra 13 java arrays arraylist

有点奇怪的要求.

public class DummyClass{
   public static final DummyClass var1;
   public static final DummyClass var2;
   public static final DummyClass var3;
    .
    .
    .
   public static final DummyClass var100;
}
Run Code Online (Sandbox Code Playgroud)

现在,从这个类的外部我们可以将这个var汇集到一个数组或列表中,以便我可以迭代它们吗?就像我做的那样

List<DummyClass> dummyList = *some op*; //I want value of some op.
Run Code Online (Sandbox Code Playgroud)

我应该能够访问var1 ... var100

Cam*_*ner 34

你可以使用反射:

Field[] fields = DummyClass.class.getDeclaredFields();
for (Field f : fields) {
    if (Modifier.isStatic(f.getModifiers()) && isRightName(f.getName())) {
        doWhatever(f);
    } 
}
Run Code Online (Sandbox Code Playgroud)

  • @NarutoUzumaki:这是伪代码.`isRightName`用于表示用户代码,用于确定字段名称是否有趣.请注意,此代码段不会调用`Modifier.isRightName`; 它只是`isRightName`. (3认同)