Enum metadata exposes the constants declared by an enum type.

Enum Reflection

EnumReflection.java
public class EnumReflection {
    enum Status {
        READY,
        RUNNING,
        DONE
    }

    public static void main(String[] args) {
        int index = ;
        Status[] values = Status.class.getEnumConstants();
        Status status = values[index];

        System.out.println("name=" + status.name());
        System.out.println("ordinal=" + status.ordinal());
    }
}
public class EnumReflection {
    enum Status {
        READY,
        RUNNING,
        DONE
    }

    public static void main(String[] args) {
        int index = ;
        Status[] values = Status.class.getEnumConstants();
        Status status = values[index];

        System.out.println("name=" + status.name());
        System.out.println("ordinal=" + status.ordinal());
    }
}
public class EnumReflection {
    enum Status {
        READY,
        RUNNING,
        DONE
    }

    public static void main(String[] args) {
        int index = ;
        Status[] values = Status.class.getEnumConstants();
        Status status = values[index];

        System.out.println("name=" + status.name());
        System.out.println("ordinal=" + status.ordinal());
    }
}
enum constants getEnumConstants returns the enum values in declaration order.
ordinal An enum ordinal is its zero-based position in the declaration.