Java 枚举和枚举之间的差异

Java 枚举和枚举之间的差异,java,enums,Java,Enums,enum有valueOf(string)方法来获取enum常量和java.lang.enum中存在的相同类型的方法类的名称为valueOf(enumClassName,string) 我发现两者的输出相同。那么还有什么区别呢。如果没有差异,那么为什么JSL添加了Enum.valueOf() 之所以包含Enum.valueof()方法,是因为它适用于任何Enum。相比之下,特定方法的enumvalueof方法仅适用于该特定的enum。。。因为enum类不能多态使用 显然,Enum.valueOf(

enum有
valueOf(string)
方法来获取enum常量和
java.lang.enum中存在的相同类型的方法
类的名称为
valueOf(enumClassName,string)
我发现两者的输出相同。那么还有什么区别呢。如果没有差异,那么为什么JSL添加了
Enum.valueOf()


之所以包含
Enum.valueof()
方法,是因为它适用于任何
Enum
。相比之下,特定方法的
enum
valueof
方法仅适用于该特定的
enum
。。。因为
enum
类不能多态使用


显然,
Enum.valueOf(…)
方法只有在实现需要用于多种
Enum
类型的代码时才真正有用。。。泛型并不能阻止它。

枚举内的方法是泛型的,可以用于任何枚举,枚举内的方法仅特定于该枚举。

Enum.valueOf(类,字符串)
用于实现
valueOf(字符串)
方法生成到每个特定的枚举类。

此讨论很有用:为什么枚举定义了.isd,但枚举没有(我知道枚举允许设置枚举)什么是枚举??
enum Season {
    WINTER,SUMMER
}

class Test {
    public static void main(String[] args) {
        String season = "WINTER";

        //switch (Season.valueOf(colObject))  // following line achieves same thing
        switch (Enum.valueOf(Season.class, season)) // any other difference between both approach
        {
            case WINTER: {
                System.out.println("Got it in switch case= VENDOR");
                break;
            }
            default:
                System.out.println("Fell thru.");
                break;
            }
    }
}