摘要:相關(guān)解決語(yǔ)句中只能寫枚舉類定義的枚舉值前面不能帶類名限定在中已經(jīng)確定了枚舉的類型如果有兩個(gè)枚舉中都有同一個(gè)變量比如的話則無(wú)法確定判斷的先后順序解決方式枚舉值不是常量而后面只能跟常量先將型的轉(zhuǎn)換成枚舉值再進(jìn)行匹配在以后,實(shí)現(xiàn)接口后,要滿足三個(gè)
enum相關(guān) an enum switch case label must be the unqualified name of an enumeration constant
private void Test(ColorType type){ switch (type){ case ColorType.GREEN: break; case ColorType.RED: break; case ColorType.ORANGE: break; default: break; } }
解決
case語(yǔ)句中只能寫枚舉類定義的枚舉值, 前面不能帶類名限定, 在switch中已經(jīng)確定了枚舉的類型.
如果有兩個(gè)枚舉中都有同一個(gè)變量(比如GREEN)的話, 則無(wú)法確定判斷的先后順序.
private void Test(ColorType type){ switch (type){ case GREEN: break; case RED: break; case ORANGE: break; default: break; } }constant expression required
private void Test(int type){ switch (type){ case ColorType.GREEN.getCode(): break; case ColorType.RED.getCode(): break; case ColorType.ORANGE.getCode(): break; default: break; } }
解決方式
枚舉值不是常量, 而case后面只能跟常量.
先將int型的type轉(zhuǎn)換成枚舉值, 再進(jìn)行switch匹配
在JDK7以后,實(shí)現(xiàn)Comparable接口后,要滿足三個(gè)特性: 自反性, 對(duì)稱性和傳遞性.
通常是因?yàn)闆]有滿足對(duì)稱性導(dǎo)致的, 如沒有判斷返回"相等"的情況
可以用System.setProperty("java.util.Arrays.useLegacyMergeSort", "true"), 或設(shè)置JVM參數(shù)-Djava.util.Arrays.useLegacyMergeSort=true來(lái)兼容JDK6及以前版本的代碼, 因?yàn)镴DK7之后默認(rèn)使用的TimSort
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/68542.html
摘要:不受檢查異常為編譯器不要求強(qiáng)制處理的異常,檢查異常則是編譯器要求必須處置的異常。潛在的異常處理器是異常發(fā)生時(shí)依次存留在調(diào)用棧中的方法的集合。當(dāng)運(yùn)行時(shí)系統(tǒng)遍歷調(diào)用棧而未找到合適的異常處理器,則運(yùn)行時(shí)系統(tǒng)終止。異常處理涉及到五個(gè)關(guān)鍵字,分別是。 概念 程序運(yùn)行時(shí),發(fā)生的不被期望的事件,它阻止了程序按照程序員的預(yù)期正常執(zhí)行,這就是異常。 異常是程序中的一些錯(cuò)誤,但并不是所有的錯(cuò)誤都是異常,并...
摘要:對(duì)象的自動(dòng)清除對(duì)象回收是由垃圾回收線程負(fù)責(zé)方法可以要求系統(tǒng)進(jìn)行垃圾回收,僅僅是建議系統(tǒng)沒有析構(gòu)方法,但的有類似方法系統(tǒng)在回收時(shí)會(huì)自動(dòng)調(diào)用對(duì)象的方法子類的方法可以在里面釋放系統(tǒng)資源,一般來(lái)說(shuō),子類的方法中應(yīng)該調(diào)用父類的方法。 對(duì)象的自動(dòng)清除 對(duì)象回收是由垃圾回收線程負(fù)責(zé) System.gc()方法可以要求系統(tǒng)進(jìn)行垃圾回收,僅僅是建議系統(tǒng) java沒有析構(gòu)方法,但Object的final...
摘要:語(yǔ)法解析是如何執(zhí)行的原文地址,對(duì)于常見編譯型語(yǔ)言例如來(lái)說(shuō),編譯步驟分為詞法分析語(yǔ)法分析語(yǔ)義檢查代碼優(yōu)化和字節(jié)碼生成。對(duì)于解釋型語(yǔ)言例如來(lái)說(shuō),通過(guò)詞法分析語(yǔ)法分析語(yǔ)法樹,就可以開始解釋執(zhí)行了。 JavaScript 語(yǔ)法解析、AST、V8、JIT JavaScript 是如何執(zhí)行的 原文地址,對(duì)于常見編譯型語(yǔ)言(例如:Java)來(lái)說(shuō),編譯步驟分為:詞法分析->語(yǔ)法分析->語(yǔ)義檢查->代碼...
摘要:異常也就是指程序運(yùn)行時(shí)發(fā)生錯(cuò)誤,而異常處理就是對(duì)這些錯(cuò)誤進(jìn)行處理和控制。有兩個(gè)重要的子類異常和錯(cuò)誤,二者都是異常處理的重要子類,各自都包含大量子類。需要注意的是,一旦某個(gè)捕獲到匹配的異常類型,將進(jìn)入異常處理代碼。 1,異?,F(xiàn)象 程序錯(cuò)誤分為三種:1,編譯錯(cuò)誤;2,運(yùn)行時(shí)錯(cuò)誤;3,邏輯錯(cuò)誤。 編譯錯(cuò)誤是因?yàn)槌绦驔]有遵循語(yǔ)法規(guī)則,編譯程序能夠自己發(fā)現(xiàn)并且提示我們錯(cuò)誤的原因和位置,這...
摘要:下面是異常處理機(jī)制的語(yǔ)法結(jié)構(gòu)業(yè)務(wù)實(shí)現(xiàn)代碼輸入不合法如果執(zhí)行塊里業(yè)務(wù)邏輯代碼時(shí)出現(xiàn)異常,系統(tǒng)自動(dòng)生成一個(gè)異常對(duì)象,該對(duì)象被提交給運(yùn)行時(shí)環(huán)境,這個(gè)過(guò)程被稱為拋出異常。 Java的異常機(jī)制主要依賴于try、catch、finally、throw和throws五個(gè)關(guān)鍵字, try關(guān)鍵字后緊跟一個(gè)花括號(hào)括起來(lái)的代碼塊(花括號(hào)不可省略),簡(jiǎn)稱try塊,它里面放置可能引發(fā)異常的代碼 catch后對(duì)...
閱讀 3865·2021-09-22 15:17
閱讀 2004·2021-09-22 14:59
閱讀 2414·2020-12-03 17:00
閱讀 3309·2019-08-30 15:55
閱讀 563·2019-08-30 11:23
閱讀 3559·2019-08-29 13:56
閱讀 582·2019-08-29 12:54
閱讀 2313·2019-08-29 12:49