枚举类会 隐式的继承Enum类,无法再继承其它类( 单继承机制)
一、无实参枚举类型:
1、定义:
/**
* 1、无实参枚举类型
*/
public enum NoParamTypeEnums {
SPRING,
SUMMER,
AUTUMN,
WINTER;
NoParamTypeEnums() {
}
}
2、使用:
public static void noParamTypeDemo() {
String season = "SPRING";
System.out.println("无实参枚举查询常量对象名结果:" + NoParamTypeEnums.SPRING.name()); //toPrint->无实参枚举查询常量对象名结果:SPRING
if (season.equals(NoParamTypeEnums.SPRING.toString())) {
System.out.println(season); //toPrint->SPRING
}
}
二、单实参枚举类型:
1、定义:
/**
* 2、单实参枚举类型
*/
public enum OnlyParamTypeEnums {
SPRING("春"),
SUMMER("夏"),
AUTUMN("秋"),
WINTER("冬");
String key;
OnlyParamTypeEnums(String key) {
this.key = key;
}
//获取枚举的key:春、夏、秋、冬
public String getKey() {
return key;
}
//输入枚举的key(春、夏、秋、冬),获取对应的常量对象名(SPRING、SUMMER、AUTUMN、WINTER)
public static String getKeyObjectName(String key) {
String keyName = null;
for (int i = 0; i < OnlyParamTypeEnums.values().length; i++) {
if (key.equals(OnlyParamTypeEnums.values()[i].getKey())) {
keyName = OnlyParamTypeEnums.values()[i].name();
break;
}
}
return keyName;
}
}
2、使用:
public static void onlyParamTypeDemo() {
String season = "春";
System.out.println("单实参枚举查询key结果:" + OnlyParamTypeEnums.SPRING.getKey()); //toPrint->单实参枚举查询key结果:春
System.out.println("单实参枚举查询常量对象名结果:" + OnlyParamTypeEnums.SPRING.name()); //toPrint->单实参枚举查询常量对象名结果:SPRING
System.out.println("单实参枚举根据key查询常量对象名结果:" + OnlyParamTypeEnums.getKeyObjectName(season)); //toPrint->单实参枚举根据key查询常量对象名结果:SPRING
if (season.equals(OnlyParamTypeEnums.SPRING.getKey())) {
System.out.println(season); //toPrint->春
}
}
三、双实参枚举类型:
1、定义:
/** * 3、双实参枚举类型 */ public enum DoubleParamTypeEnums { SPRING("0", "春"), SUMMER("1", "夏"), AUTUMN("2", "秋"), WINTER("3", "冬"); String key; String value; DoubleParamTypeEnums(String key, String value) { this.key = key; this.value = value; } //获取枚举的key:0、1、2、3 public String getKey() { return key; } //输入枚举的value(春、夏、秋、冬),获取枚举的key:0、1、2、3 public static String getKey(String value) { String keyName = null; for (int i = 0; i < DoubleParamTypeEnums.values().length; i++) { if (value.equals(DoubleParamTypeEnums.values()[i].getValue())) { keyName = DoubleParamTypeEnums.values()[i].getKey(); break; } } return keyName; } //输入枚举的key(0、1、2、3),获取对应的常量对象名(SPRING、SUMMER、AUTUMN、WINTER) public static String getKeyObjectName(String key) { String keyName = null; for (int i = 0; i < DoubleParamTypeEnums.values().length; i++) { if (key.equals(DoubleParamTypeEnums.values()[i].getKey())) { keyName = DoubleParamTypeEnums.values()[i].name(); break; } } return keyName; } //获取枚举的value:春、夏、秋、冬 public String getValue() { return value; } //输入枚举的key(0、1、2、3),获取枚举的value:春、夏、秋、冬 public static String getValue(String key) { String valueName = null; for (int i = 0; i < DoubleParamTypeEnums.values().length; i++) { if (key.equals(DoubleParamTypeEnums.values()[i].getKey())) { valueName = DoubleParamTypeEnums.values()[i].getValue(); break; } } return valueName; } //输入枚举的key(春、夏、秋、冬),获取对应的常量对象名(SPRING、SUMMER、AUTUMN、WINTER) public static String getValueObjectName(String value) { String keyName = null; for (int i = 0; i < DoubleParamTypeEnums.values().length; i++) { if (value.equals(DoubleParamTypeEnums.values()[i].getValue())) { keyName = DoubleParamTypeEnums.values()[i].name(); break; } } return keyName; } //获取双实参枚举Map集合 public static MapgetDataMap() { Map ,>dataMap = new HashMap<>(); for (int i = 0; i < DoubleParamTypeEnums.values().length; i++) { String key = DoubleParamTypeEnums.values()[i].getKey(); String value = DoubleParamTypeEnums.values()[i].getValue(); dataMap.put(key, value); } return dataMap; } } ,>
2、使用:
public static void doubleParamTypeDemo() {
String seasonKey = "0";
String seasonValue = "春";
System.out.println("双实参枚举查询key结果:" + DoubleParamTypeEnums.SPRING.getKey()); //toPrint->双实参枚举查询key结果:0
System.out.println("双实参枚举根据value查询key结果:" + DoubleParamTypeEnums.getKey(seasonValue)); //toPrint->双实参枚举根据value查询key结果:0
System.out.println("双实参枚举根据key查询常量对象名结果:" + DoubleParamTypeEnums.getKeyObjectName(seasonKey)); //toPrint->双实参枚举根据key查询常量对象名结果:SPRING
System.out.println("双实参枚举查询value结果:" + DoubleParamTypeEnums.SPRING.getValue()); //toPrint->双实参枚举查询value结果:春
System.out.println("双实参枚举根据key查询value结果:" + DoubleParamTypeEnums.getValue(seasonKey)); //toPrint->双实参枚举根据key查询value结果:春
System.out.println("双实参枚举根据value查询常量对象名结果:" + DoubleParamTypeEnums.getValueObjectName(seasonValue)); //toPrint->双实参枚举根据value查询常量对象名结果:SPRING
System.out.println("双实参枚举Map集合结果:" + DoubleParamTypeEnums.getDataMap()); //toPrint->双实参枚举Map集合结果:{0=春, 1=夏, 2=秋, 3=冬}
System.out.println("双实参枚举Map集合查询value结果:" + DoubleParamTypeEnums.getDataMap().get(seasonKey)); //toPrint->双实参枚举Map集合查询value结果:春
if (seasonKey.equals(DoubleParamTypeEnums.SPRING.getKey())) {
System.out.println(seasonKey); //toPrint->0
}
}
Original: https://www.cnblogs.com/Iven-L/p/16586628.html
Author: 爱文(Iven)
Title: 5、枚举Enum
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/575699/
转载文章受原作者版权保护。转载请注明原作者出处!