我无法将Enum值与函数中的预定义值进行比较 我有一个枚举设置为
public enum SomeEnum {
A, B, C
}
然后在另一个课程中,我有一个方法可以将String
与Enum值进行比较,根据{{返回枚举值 equals
1}} Enum值的方法。
方法:
toString()
上面的代码给出了一个错误说明:
变量letterType可能尚未初始化
足够公平,只是实例化它!...
/**
* Example
* @param someString - A string which could be equivalent to an SomeEnum value.
* @return SomeEnum Type
*/
private static ClassA someMethod(String someString) {
SomeEnum letterType; // Problem
for (SomeEnum letter : SomeEnum.values()) {
if (someString.equals(letter.toString())) {
letterType = letter;
}
}
return letterType;
}
然而枚举(根据定义)无法实例化。
这给我留下了两个选择:
SomeEnum letterType = new SomeEnum(); // NO
初始化letterType
通过指定if
letterType
null
<小时/> 选项1 限制我返回
/*Options*/
//1.
if (someString.equals(letter.toString())){
SomeEnum letterType = letter;
}
//2.
private static ClassA someMethod(String someString) {
SomeEnum letterType = null;
//...
}
,因为它现在无法访问。 letterType
实例化似乎不良好做法 - 如果我错了,请纠正我。
除了使用null
语句并更改功能外,似乎我只能使用选项2实现此功能。
还有另一种方法来实现这个目标吗?/缺少一些简单的东西......?
我对这个概念的理解不正确吗?
我应该只使用switch
语句吗?