Switch Enum使用
以为在Switch中使用Enum应该这样用,可是却编译不通过
package cn.cjf.java.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
public class SwitchEnumTest {
public static void main(String[] args) {
int code = 1;
final EColor color = EColor.getByCode(code);
switch (color) {
case EColor.RED:
System.out.println("红色");
break;
case EColor.GREED:
System.out.println("绿色");
break;
case EColor.BLUE:
System.out.println("蓝色");
break;
default:
}
}
@Getter
@AllArgsConstructor
public enum EColor {
RED(1), GREED(2), BLUE(3);
private int code;
public static EColor getByCode(int code) {
for (EColor color : EColor.values()) {
if (color.code == code) {
return color;
}
}
return null;
}
}
}
但去掉类名后,却可以
package cn.cjf.java.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author chenjunfan
* @date 2023-09-20
*/
public class SwitchEnumTest {
public static void main(String[] args) {
int code = 1;
final EColor color = EColor.getByCode(code);
switch (color) {
case RED:
System.out.println("红色");
break;
case GREED:
System.out.println("绿色");
break;
case BLUE:
System.out.println("蓝色");
break;
default:
}
}
@Getter
@AllArgsConstructor
public enum EColor {
RED(1), GREED(2), BLUE(3);
private int code;
public static EColor getByCode(int code) {
for (EColor color : EColor.values()) {
if (color.code == code) {
return color;
}
}
return null;
}
}
}