[英]valueOf method of Enum
枚举有一个valueOf方法:
public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
所以,当我有枚举时:
public enum Basket {
APPLES, ORANGES, FLOWERS
}
编码
Basket b = Basket.valueOf(Basket.class, "APPLES");
带给我的是同一个对象
Basket b2 = Basket.APPLES;
即,以上两行中的b.equals(b2)是true。
我想知道的是-什么是
public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
很好。
在反射API中可能会使用它-我现在无法将其放在一起。 除此之外,此方法是否有特定用途? 如果Enum类没有此方法,将会丢失什么?
与valueOf-with-single参数相同-在Enum中隐式定义:
Basket.valueOf("APPLES");
在做与
Basket.valueOf(Basket.class, "APPLES");
什么用途?
public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
当您不知道确切的Enum类型时使用。 如果您正在编写通用代码,就是这种情况。 一个示例是将json反序列化为java对象。 您可以通过反射和调用来获取字段的“ enumType”,
Enum.valueOf(enumClass,fieldValue)
如果要查看实际用法,请检查,
java.io.ObjectInputStream#readEnum
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.