Case-insensitive matching of a string to a Java enum

后端 未结 9 1558
独厮守ぢ
独厮守ぢ 2020-12-24 10:59

Java provides a valueOf() method for every Enum object, so given an enum like

public enum Day {
         


        
9条回答
  •  旧巷少年郎
    2020-12-24 11:26

    I would think the easiest safe way to do it would be:

    Arrays.stream(Day.values())
        .filter(e -> e.name().equalsIgnoreCase(dayName)).findAny().orElse(null);
    

    Or if you want to use the class object, then:

    Arrays.stream(enumClass.getEnumConstants())
        .filter(e -> (Enum)e.name().equalsIgnoreCase(dayName)).findAny().orElse(null);
    

提交回复
热议问题