我如何在 Java 中创建枚举?
How can i create Enum in Java?
我已经创建了枚举。但是我无法创建 new Enum。我实际上想创建和比较 2 个枚举。 X 值来自后端。这是一个动态值。我想做这个;
EmployeeType type = new EmployeeType("X")
if (type == EmployeeType.X_PERSONALS) {
Log.i("SAMPLE_TAG", "Yesss!")
}
public enum EmployeeType {
X_PERSONALS("X"),
Y_PERSONALS("Y"),
Z_PERSONALS("Z");
private final String text;
EmployeeType(final String text) {
this.text = text;
}
public String getText() {
return text;
}
}
But i cannot create new Enum
这就是枚举的真正意义所在:您无法实例化它们。
您可以参考现有元素,例如
EmployeeType type = EmployeeType.X_PERSONALS;
所以你实际上想要实现的是找到具有相同 text
的枚举常量。你可以这样:
public enum EmployeeType {
X_PERSONALS("X"),
///...and so on
public static EmployeeType getByText(String x) {
for(EmployeeType t:values()) {
if(t.text.equals(x)){
return t;
}
}
return null;
}
}
然后使用如下代码:
EmployeeType type = EmployeeType.getByText("X");
if (type == EmployeeType.X_PERSONALS) {
//and so on
我已经创建了枚举。但是我无法创建 new Enum。我实际上想创建和比较 2 个枚举。 X 值来自后端。这是一个动态值。我想做这个;
EmployeeType type = new EmployeeType("X")
if (type == EmployeeType.X_PERSONALS) {
Log.i("SAMPLE_TAG", "Yesss!")
}
public enum EmployeeType {
X_PERSONALS("X"),
Y_PERSONALS("Y"),
Z_PERSONALS("Z");
private final String text;
EmployeeType(final String text) {
this.text = text;
}
public String getText() {
return text;
}
}
But i cannot create new Enum
这就是枚举的真正意义所在:您无法实例化它们。
您可以参考现有元素,例如
EmployeeType type = EmployeeType.X_PERSONALS;
所以你实际上想要实现的是找到具有相同 text
的枚举常量。你可以这样:
public enum EmployeeType {
X_PERSONALS("X"),
///...and so on
public static EmployeeType getByText(String x) {
for(EmployeeType t:values()) {
if(t.text.equals(x)){
return t;
}
}
return null;
}
}
然后使用如下代码:
EmployeeType type = EmployeeType.getByText("X");
if (type == EmployeeType.X_PERSONALS) {
//and so on