我有一个类TestCase
。在其中我有内部类Test
。 enum OwnerType
类内部是枚举的 setter 和 getter。
public static final class Test{
public enum OwnerType {
User("User"),
Role("Role");
}
public OwnerType getOwnerType() {
return m_ownerType;
}
public void setOwnerType(OwnerType m_ownerType) {
this.m_ownerType = m_ownerType;
}
}
Test
在我的例子中是内部类。我正在尝试使用 JSON 键设置值
private Test createTest(JSONObject obj) {
Test test = new Test();
test.setOwnerType(JSONUtil.getStringValue(obj, JSON_KEY)); // Gives error
return test;
}
报错
The method
setOwnerType(TestCase.Test.OwnerType)
in the typeTestCase.Test
is not applicable for the arguments (String
).
如何转换该值或将其设置为 createTest
方法?
最佳答案
您必须使用OwnerType#valueOf(String name)
方法:
String name = JSONUtil.getStringValue(obj, JSON_KEY);
test.setOwnerType(Test.OwnerType.valueOf(name));
关于java - 如何使用字符串作为采用枚举的方法的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22249831/