我有一个枚举类Property
,在我的程序的某些部分,我想要替换String
中的Serializable
或Property
值。我怎么能这样做?
public enum Property {
Autofocus,
Bluetooth,
Brand,...}
如何使用Property
值或Serializable
为String
分配值:
Property property;
this.property = (Serializable) value;
或
this.property = "value";
而不是
this.property = Property.Autofocus;
this.property = Property.Brand; // ...
答案 0 :(得分:2)
使用java.lang.Enum.valueOf(Class<T> enumType, String name)
:
Property p = Enum.valueOf(Property.class, "Autofocus");
System.out.println(p);
答案 1 :(得分:2)
每个enum
都有一个隐式方法valueOf(String)
,它返回具有指定名称的枚举实例:
Property p = Property.valueOf("Autofocus");
请注意,此方法会针对未知值抛出IllegalArgumentException
。
答案 2 :(得分:1)
Property.valueOf("Bluetooth");
如果你的意思是,会将字符串中的值转换为枚举值
静态方法valueOf()
和values()
是在编译时创建的,不会出现在源代码中。但它们确实出现在Javadoc中;例如,Dialog.ModalityType
显示两种方法。