我想知道我们是否可以拥有char类型的enaum值?我想做这样的事情:
public enum Enum {char X, char Y};
...
Enum a=Enum.X
if (a=='X')
{// do something}
Run Code Online (Sandbox Code Playgroud)
没有调用任何额外的函数将枚举转换为char(因为我希望它已经是char).有办法吗?
ysh*_*vit 17
没有.
但转换方法根本不是很难.
public enum SomeChar {
X('X'), Y('Y');
public char asChar() {
return asChar;
}
private final char asChar;
SomeChar(char asChar) {
this.asChar = asChar;
}
}
Run Code Online (Sandbox Code Playgroud)
然后:
if (a.asChar() == 'X') { ... }
Run Code Online (Sandbox Code Playgroud)
如果您不喜欢使用asChar字段/构造函数,您甚至可以将getter实现为return name().charAt(0).
如果您正在使用lombok,这将变得更加容易:
@RequiredArgsConstructor
@Getter
public enum SomeChar {
X('X'), Y('Y');
private final char asChar;
}
if (a.getAsChar() == 'X') { ...
Run Code Online (Sandbox Code Playgroud)
顺便说一下,一个名为enum的枚举Enum会令人困惑,因为大多数人会Enum在源头看到并假设它java.lang.Enum.通常,遮蔽常用/导入的类名是危险的,并且类的导入不会比导入的更常见java.lang.*(总是导入).
| 归档时间: |
|
| 查看次数: |
12283 次 |
| 最近记录: |