[新聞] Java 14即將發布,正式加入新的Switch表

作者: Jyery (文帝)   2020-03-08 14:33:37
1.媒體來源:
ITHOME
2.記者署名
文/李建興
3.完整新聞標題:
Java 14即將發布,正式加入新的Switch表示式
4.完整新聞內文:
依照6個月的發布周期,甲骨文預計在3月17日時釋出Java 14,這個版本有三個主要的更
新,第一個便是在Java 12新增的預覽功能Switch表示式,在Java 14中成熟成為正式功能
,第二個則是新增的語言功能,為instanceof增加模式配對,第三個則是JVM的功能,提
供有用的NullPointerExceptions訊息。
由於Java舊的Switch表示式有幾個問題,因此官方在Java 12的時候,加入新的Switch表
示式語法預覽版,要讓Switch更好用。Switch表示式語法包含case以及break陳述式,條
件配對由上往下執行,一旦進到特定case中,break陳述式會確保下一個case區塊不會被
執行,但是當開發者忘記寫break,執行流程會繼續往下走,直到碰到下一個break,這個
現象被稱為貫穿(Fall-through)。
而在新的Switch表示式中,使用了新的語法來避免貫穿發生的可能性,因此能夠降低可能
產生臭蟲的機率。新的Switch格式使用Lambda風格的語法,該語法由標籤和回傳值程式碼
間的箭頭組成,但官方強調,這個並非真正的Lambda表示式,只是類似而已。
Java 12之前,Switch表示式中每一個case只能使用一個標籤,因此儘管不同標籤的處理
邏輯相同,仍需要分開寫成兩個case區塊,或是故意利用貫穿現象來達成目的,但是故意
使用貫穿可能會造成誤解,因為在部分情況會難以判斷缺少break陳述式是故意的還是無
意的。而在新的Switch表示式中,現在可以在case使用多個標籤處理這樣的情況。
官方表示,新的Switch表示式也更加詳盡安全,當開發者在Switch中使用enum時,編譯器
會檢查case是否枚舉所有enum中的值,當創建的switch沒有涵蓋所有的值,則會出現編譯
器錯誤,這個錯誤可以提醒開發者處理遺漏的情況。
另外,Switch在Java 12之前只是一個陳述式,而現在則可做為一個表示式使用。官方提
到,陳述式的本質是動作,而表示式的本質則是請求產生一個值,表示式越基本容易理解
,也會使得程式碼更容易維護。而現在開發者可以把switch撰寫成簡潔的表示式,以更好
地表明程式碼的意圖。
Java 14為instanceof加入模式配對,這個功能可減少有條件instanceof檢查,進行強制
轉換的需要。模式配對是讓開發者能夠測試值的樣子,並在符合特定規則的時候擷取出資
訊,在測試參數以確定其類型時,會經過轉換,並宣告區域變數,以便後續利用特定類型
進行處理。
這個新的語言功能,則是讓開發者從物件中有條件地取出元件變得簡單,使語法更加簡單
可讀,官方表示,這個預覽功能為廣泛的模式配對開了一個門,模式配對的中心思想,就
是要提供一個功能,可以簡單地根據條件,從物件中擷取出元件,而instanceof運算子就
是這樣的功能。
Java 14加入新的JVM功能,讓開發者可以獲取更多可用於診斷錯誤的訊息,在Java 14之
前,NullPointerException訊息含糊不清,無法明確的讓開發者知道程式問題所在,而現
在,訊息至少會包含問題發生的位置以及原因兩類資訊。這項功能不止可用於方法調用,
還可用於其他可能導致NullPointerException的地方,包括欄位存取、陣列存取和賦值。
5.完整新聞連結 (或短網址):
https://www.ithome.com.tw/news/136186
6.備註:
聽起來很厲害 不過感覺學生都在學python
可以玩健身環嗎

Links booklink

Contact Us: admin [ a t ] ucptt.com