getting all static variables in a class into array/list

后端 未结 2 1286
余生分开走
余生分开走 2021-02-05 13:49

Bit of a wierd requirement.

public class DummyClass{
   public static final DummyClass var1;
   public static final DummyClass var2;
   public static final Dummy         


        
相关标签:
2条回答
  • 2021-02-05 14:15

    If you have a class with constants and want to get the actual values of your java constant you can do following:

       List<String> constantValues = Arrays.stream(DummyClass.class.getDeclaredFields())
          .filter(field -> Modifier.isStatic(field.getModifiers()))
          .map(field -> {
            try {
              return (String) field.get(DummyClass.class);
            } catch (IllegalAccessException e) {
              throw new RuntimeException(e);
            }
          })
          .filter(name -> ! name.equals("NOT_NEEDED_CONSTANT") // filter out if needed 
          .collect(Collectors.toList());
    
    0 讨论(0)
  • 2021-02-05 14:32

    You could use reflection:

    Field[] fields = DummyClass.class.getDeclaredFields();
    for (Field f : fields) {
        if (Modifier.isStatic(f.getModifiers()) && isRightName(f.getName())) {
            doWhatever(f);
        } 
    }
    
    0 讨论(0)
提交回复
热议问题