枚舉類會隱式的繼承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 Map<String, String> getDataMap() {
Map<String, String> 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;
}
private static final List<String> DoubleParamTypeList = Arrays.asList(
SPRING.getKey(), SUMMER.getKey(), AUTUMN.getKey(), WINTER.getKey());
public static List<String> getDoubleParamTypeList (){
return DoubleParamTypeList ;
}
}
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
}
}
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。