2

我有一个枚举类Property,并且在我的程序的某些部分中,我想替换我String的. 我怎样才能做到这一点?SerializableProperty

public enum Property {
    Autofocus,
    Bluetooth,
    Brand,...}

我如何为Property使用Serializablevalue 或 a赋值String

Property property;
this.property = (Serializable) value;

或者

this.property = "value";

代替

this.property = Property.Autofocus;
this.property = Property.Brand; // ...
4

3 回答 3

2

使用java.lang.Enum.valueOf(Class<T> enumType, String name)

Property p = Enum.valueOf(Property.class, "Autofocus");
System.out.println(p);
于 2013-09-12T13:32:18.047 回答
2

每个enum都有一个隐式方法valueOf(String),它返回具有指定名称的枚举实例:

 Property p = Property.valueOf("Autofocus");

请注意,此方法会抛出IllegalArgumentException未知值。

于 2013-09-12T13:33:28.613 回答
1
Property.valueOf("Bluetooth");

如果这就是您的意思,将从字符串中获取值到枚举的值

静态方法valueOf()values()是在编译时创建的,不会出现在源代码中。不过,它们确实出现在 Javadoc 中;例如,Dialog.ModalityType显示这两种方法。

于 2013-09-12T13:34:30.973 回答