Sobes.tech
Junior — Middle

How to implement obtaining a list of all modes defined in a class?

sobes.tech AI

Answer from AI

If "modes" refer, for example, to constants or enumerations (enums) in a class, their list can be obtained in different ways.

For enums in Java:

public enum Mode {
    MODE1,
    MODE2,
    MODE3;
}

// Getting all modes
Mode[] modes = Mode.values();
for (Mode mode : modes) {
    System.out.println(mode);
}

If these are static fields in a class, reflection can be used:

import java.lang.reflect.Field;

public class MyClass {
    public static final String MODE1 = "mode1";
    public static final String MODE2 = "mode2";
    public static final String MODE3 = "mode3";
}

// Getting all modes
Field[] fields = MyClass.class.getDeclaredFields();
for (Field field : fields) {
    if (java.lang.reflect.Modifier.isStatic(field.getModifiers())) {
        System.out.println(field.getName());
    }
}

Thus, for enums, simply call values(), and for static fields, use reflection.