Java基礎入門之switch怎么使用枚舉
在Java開發(fā)中,switch語句是一種常用的流控制語句,用于根據(jù)不同的條件執(zhí)行不同的代碼塊。而當使用枚舉類型作為條件時,我們常常會遇到“Constant expression required”的報錯問題,這給程序開發(fā)造成了不小的困擾。
switch 語句中的變量類型可以是: byte、short、int 或者 char。從 Java SE 7 開始,switch 支持字符串 String 類型了,同時 case 標簽必須為字符串常量或字面量。 我們創(chuàng)建一個枚舉:
@Getter
@AllArgsConstructor
public enum ProductEnum {
TYPE_1(1,"精品推薦"),
TYPE_2(2,"熱門榜單"),
TYPE_3(3,"首發(fā)新品"),
TYPE_4(4,"猜你喜歡");
private Integer value;
private String desc;
}用switch語句:
int a = 0;
// order
switch (a) {
//精品推薦
case ProductEnum.TYPE_1.getValue():
System.out.println("1");
break;
//首發(fā)新品
case ProductEnum.TYPE_2.getValue():
System.out.println("1");
break;
// 猜你喜歡
case ProductEnum.TYPE_3.getValue():
System.out.println("1");
break;
// 熱門榜單
case ProductEnum.TYPE_4.getValue():
System.out.println("1");
break;
}看上去沒有問題,但是因為switch中需要的是一個常量,但是枚舉中又是不可以加final關鍵字,所以會出現(xiàn)這種情況:(Constant expression required:需要常量表達式)

我們想要使用就需要封裝一個方法在枚舉類里面:
public static ProductEnum toType(int value) {
return Stream.of(ProductEnum.values())
.filter(p -> p.value == value)
.findAny()
.orElse(null);
}封裝后的枚舉類:
@Getter
@AllArgsConstructor
public enum ProductEnum {
TYPE_1(1,"精品推薦"),
TYPE_2(2,"熱門榜單"),
TYPE_3(3,"首發(fā)新品"),
TYPE_4(4,"猜你喜歡");
private Integer value;
private String desc;
public static ProductEnum toType(int value) {
return Stream.of(ProductEnum.values())
.filter(p -> p.value == value)
.findAny()
.orElse(null);
}
}這個時候我們這么用:
int a = 0;
switch (ProductEnum.toType(a)) {
//精品推薦
case TYPE_1:
System.out.println("1");
break;
//首發(fā)新品
case TYPE_3:
System.out.println("2");;
break;
// 猜你喜歡
case TYPE_4:
System.out.println("3");
break;
// 熱門榜單
case TYPE_2:
System.out.println("4");
break;
}這樣就沒問題啦:

當我們在處理枚舉類型時,遇到了“需要常量表達式”的問題。針對這個問題,我們可以按照上述方法進行處理,將枚舉的值轉化成枚舉類型,來避免編譯錯誤。
除此之外,值得一提的是,在實際應用中,枚舉也是一種非常重要的數(shù)據(jù)類型。它可以用于表示各種狀態(tài)、選項以及配置項,還可以為程序中的常量命名,以減少硬編碼。因此,熟練掌握枚舉類型的相關操作,是我們開發(fā)高效、優(yōu)質代碼所必不可少的基本技能。
總之,本文向大家介紹了如何在Java開發(fā)中處理枚舉類型,讓大家更好地理解和掌握switch語句的使用方法。希望大家能夠通過學習和實踐,鞏固這些基礎知識,并在日常工作中充分發(fā)揮它們的應用價值,為自己的開發(fā)工作提升整體效率與質量。
到此這篇關于Java基礎入門之switch怎么使用枚舉的文章就介紹到這了,更多相關Java switch枚舉內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java中Elasticsearch 實現(xiàn)分頁方式(三種方式)
Elasticsearch是用Java語言開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是一種流行的企業(yè)級搜索引擎,這篇文章主要介紹了Elasticsearch實現(xiàn)分頁的3種方式,需要的朋友可以參考下2022-07-07

