好久没有写文章记录问题了,今天在工作中遇到了枚举的问题,之前没怎么接触Enum,特此记录
个人理解,枚举是一个存放常量类数组的容器
如下所示两个例子:枚举类的构造函数定义了什么参数,定义的常量类数组里面成员的括号里就应该传什么参数
public enum EnumTest {
Red("1"), Bule("2"),Yellow("3");
private String colorName;
EnumTest(String colorName) {
this.colorName = colorName;
}
public String getColorName() {
return colorName;
}
public static void main(String[] args) {
String needColor = "1";//传的参数
for (EnumTest e: EnumTest.values()) {
if(needColor.equals(e.getColorName())){
System.out.println(e.name()+":true");
}else{
System.out.println(e.name()+":false");
}
}
}
}
public enum EnumTest {
Red("1",2), Bule("2",2),Yellow("3",2);
private String colorName;
EnumTest(String colorName,int num) {
this.colorName = colorName;
}
public String getColorName() {
return colorName;
}
public static void main(String[] args) {
String needColor = "1";
for (EnumTest e: EnumTest.values()) {
if(needColor.equals(e.colorName))
System.out.println(e.getColorName());
}
}
这里说明一下今天遇到的业务需求:
由于枚举里面的常量名错了,导致在往后面传参的时候拿不到值,所以仅需要把类似Red位置的值改为正确的即可。
传过来的参数和构造函数的参数是一致的,需要根据传过来的参数和常量数组里面的值进行对比,如果相同则在map中放入键值为常量名,value为true的一组数据
不相同则在map中放入键值为常量名,value为false的一组数据
技术说明:
1、如何拿常量名,在遍历的时候调用 .name方法即可
2、如何拿值,在遍历的时候调用get方法或者直接 用变量名获取