Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

java enum receive values from string name

I have enum like:

public enum Enum2 
{
    ONE,TWO,THREE;
}

I can list all values like:

public static void main(String... args)
{
   for (Enum2 e : Enum2.values()) 
   {
        System.out.println(e);
   }

}

Is it possible list values if I have only string name of Enum?

String enum_name="Enum2";

E.g. if in some logic like:

if (a>b) 
{
enum_name="EnumA";
} 
else
{
enum_name="EnumB";
}

And after I receive string name of enum - I can list all values.

like image 509
Lorenzo Manucci Avatar asked Feb 28 '26 04:02

Lorenzo Manucci


1 Answers

Class<?> enumClazz = Class.forName("com.mycompany.Enum2");
for (Enum<?> e : ((Class<? extends Enum<?>>)enumClazz).getEnumConstants()) {
    System.out.println(e.name()); // The variable "e" would be Enum2.ONE, etc
}

Thank you @Harry for helping me get this right.

like image 181
Bohemian Avatar answered Mar 02 '26 18:03

Bohemian



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!