最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基礎(chǔ)入門(mén)之switch怎么使用枚舉

 更新時(shí)間:2023年06月06日 11:42:38   作者:掉頭發(fā)的王富貴  
在Java開(kāi)發(fā)中,switch語(yǔ)句是一種常用的流控制語(yǔ)句,而當(dāng)使用枚舉類(lèi)型作為條件時(shí),我們常常會(huì)遇到報(bào)錯(cuò)問(wèn)題,那么該如何解決呢,下面就來(lái)詳細(xì)講講

在Java開(kāi)發(fā)中,switch語(yǔ)句是一種常用的流控制語(yǔ)句,用于根據(jù)不同的條件執(zhí)行不同的代碼塊。而當(dāng)使用枚舉類(lèi)型作為條件時(shí),我們常常會(huì)遇到“Constant expression required”的報(bào)錯(cuò)問(wèn)題,這給程序開(kāi)發(fā)造成了不小的困擾。

switch 語(yǔ)句中的變量類(lèi)型可以是: byte、short、int 或者 char。從 Java SE 7 開(kāi)始,switch 支持字符串 String 類(lèi)型了,同時(shí) case 標(biāo)簽必須為字符串常量或字面量。 我們創(chuàng)建一個(gè)枚舉:

@Getter
@AllArgsConstructor
public enum ProductEnum {
	TYPE_1(1,"精品推薦"),
	TYPE_2(2,"熱門(mén)榜單"),
	TYPE_3(3,"首發(fā)新品"),
	TYPE_4(4,"猜你喜歡");
	private Integer value;
	private String desc;
}

用switch語(yǔ)句:

 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;
            // 熱門(mén)榜單
            case ProductEnum.TYPE_4.getValue():
                System.out.println("1");
                break;
        }

看上去沒(méi)有問(wèn)題,但是因?yàn)閟witch中需要的是一個(gè)常量,但是枚舉中又是不可以加final關(guān)鍵字,所以會(huì)出現(xiàn)這種情況:(Constant expression required:需要常量表達(dá)式

我們想要使用就需要封裝一個(gè)方法在枚舉類(lèi)里面:

public static ProductEnum toType(int value) {
		return Stream.of(ProductEnum.values())
				.filter(p -> p.value == value)
				.findAny()
				.orElse(null);
	}

封裝后的枚舉類(lèi):

@Getter
@AllArgsConstructor
public enum ProductEnum {
	TYPE_1(1,"精品推薦"),
	TYPE_2(2,"熱門(mén)榜單"),
	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);
	}
}

這個(gè)時(shí)候我們這么用:

   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;
            // 熱門(mén)榜單
            case TYPE_2:
                System.out.println("4");
                break;
        }

這樣就沒(méi)問(wèn)題啦:

當(dāng)我們?cè)谔幚砻杜e類(lèi)型時(shí),遇到了“需要常量表達(dá)式”的問(wèn)題。針對(duì)這個(gè)問(wèn)題,我們可以按照上述方法進(jìn)行處理,將枚舉的值轉(zhuǎn)化成枚舉類(lèi)型,來(lái)避免編譯錯(cuò)誤。

除此之外,值得一提的是,在實(shí)際應(yīng)用中,枚舉也是一種非常重要的數(shù)據(jù)類(lèi)型。它可以用于表示各種狀態(tài)、選項(xiàng)以及配置項(xiàng),還可以為程序中的常量命名,以減少硬編碼。因此,熟練掌握枚舉類(lèi)型的相關(guān)操作,是我們開(kāi)發(fā)高效、優(yōu)質(zhì)代碼所必不可少的基本技能。

總之,本文向大家介紹了如何在Java開(kāi)發(fā)中處理枚舉類(lèi)型,讓大家更好地理解和掌握switch語(yǔ)句的使用方法。希望大家能夠通過(guò)學(xué)習(xí)和實(shí)踐,鞏固這些基礎(chǔ)知識(shí),并在日常工作中充分發(fā)揮它們的應(yīng)用價(jià)值,為自己的開(kāi)發(fā)工作提升整體效率與質(zhì)量。

到此這篇關(guān)于Java基礎(chǔ)入門(mén)之switch怎么使用枚舉的文章就介紹到這了,更多相關(guān)Java switch枚舉內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

革吉县| 土默特右旗| 旌德县| 和平县| 泰州市| 江永县| 全椒县| 邵阳县| 天等县| 广灵县| 德化县| 册亨县| 宜阳县| 贵南县| 樟树市| 长泰县| 乌拉特中旗| 满城县| 宝清县| 壤塘县| 宜黄县| 遂溪县| 同仁县| 扶风县| 麻阳| 白银市| 舞钢市| 鲁山县| 凭祥市| 崇礼县| 嘉祥县| 贞丰县| 县级市| 施甸县| 蒙阴县| 颍上县| 当涂县| 仁怀市| 渭源县| 堆龙德庆县| 焦作市|