Java 枚举和枚举之间的差异
enum有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(
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;
}
}
}