化解一個誤區,其實switch和enum是可以很方便配合使用的


enum switch case label must be the unqualified name of an enumeration constant 或 錯誤: 枚舉 switchcase 標簽必須為枚舉常量的非限定名稱case ColorType.GREEN:

在咱們Android開發中,有一個變量可能會被很多界面引用,所以我們就會在它前面增加static final public這樣的修飾,但寫多了,總感覺到比較散,后來我想到了enum類型,但在使用的過程,我遇到一個問題:enum和switch老是報錯,如第一段的一個錯的兩種提示,以前很菜,不懂,當時就認為安卓本身就不支持enum和switch一起使用,隨着開發的經驗越來越豐富,又回想起這事,感覺不對呀,於是去查了點資料,試了試,哈哈,原來是可以的,所以我把它記錄下來,分享給大家!

 

首先聲明一個enum類:

 

public enum ColorType{
GREEN,
RED,
ORANGE,
WHITE,
BLACK
}

現在我寫一下我之前錯誤的寫法:

 

private void TestEnum(ColorType type){
switch (type){
case ColorType.GREEN:
break;
case ColorType.RED:
break;
case ColorType.ORANGE:
break;
case ColorType.WHITE:
break;
case ColorType.BLACK:
break;
default:

}
}

如下圖,我使用紅框標出來


正確寫法應該是case后面的enum項不要帶ColorType:

 

private void TestEnum(ColorType type){
switch (type){
case GREEN:
break;
case RED:
break;
case ORANGE:
break;
case WHITE:
break;
case BLACK:
break;
default:

}
}

如下圖:


我思考了下之前為什么老是以為case后面,enum項前面必須加一個enum類型,因為我的Enum類寫在一個文件里,如果在另的文件引用它,我就覺得必須加一個范圍或者限制詞,如張三,大家就會覺得哪里的張三,我就會說中國XX省XX市XX縣XX鎮XX村XX組的張三,哎,卻在switch和enum聯用時,誤導了咱!
————————————————
版權聲明:本文為CSDN博主「bright789」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/bright789/article/details/50987552


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM