JDK语言功能预览:切换表达式
JEP 12 [“預(yù)覽語(yǔ)言和VM功能”]在其主頁(yè)上描述如下:
預(yù)覽語(yǔ)言或VM功能是Java SE平臺(tái)的一項(xiàng)新功能,該功能已完全指定,完全實(shí)現(xiàn)但不是永久性的。 JDK功能發(fā)布中提供了該功能,以根據(jù)實(shí)際使用情況激發(fā)開(kāi)發(fā)人員反饋。 這可能會(huì)導(dǎo)致它在將來(lái)的Java SE平臺(tái)中永久存在。
顧名思義, JEP 325 [“ Switch Expressions(Preview)”]是“ 預(yù)覽功能” 。 這樣,JEP 325為使用JEP 12概述的過(guò)程預(yù)覽新的語(yǔ)言功能提供了早期可見(jiàn)性。
OpenJDK jdk-dev郵件列表上的最新消息提供了JEP 325在幫助Java開(kāi)發(fā)人員理解JEP 12和“預(yù)覽功能”過(guò)程的意義上的有用證據(jù)。 關(guān)于開(kāi)關(guān)表達(dá)式的“預(yù)覽功能”性質(zhì)的討論(JEP 325)始于Mark Reinhold 于8月27日寫(xiě)的關(guān)于JEP 325的信息,“此處提出的幾項(xiàng)反對(duì)意見(jiàn)并不是新的,因?yàn)橐呀?jīng)提出并回答了反對(duì)意見(jiàn)。 amber-dev和amber-spec-experts列表。 因此,我已將此JEP定位于JDK12。” 該消息導(dǎo)致了更多有關(guān)對(duì)當(dāng)前提議的“ switch expression ”語(yǔ)言實(shí)現(xiàn)提出異議的反饋消息。
為了回應(yīng)某些對(duì)話(特別是擔(dān)心一旦從JDK中包含最初的實(shí)現(xiàn)就無(wú)法更改它),Reinhold在8月28日的一條消息中寫(xiě)道:
…預(yù)覽語(yǔ)言功能的重點(diǎn)是在不完全致力于當(dāng)前設(shè)計(jì)的情況下邀請(qǐng)進(jìn)一步的反饋,因此人們當(dāng)然會(huì)使用它(我們希望!)。 但是,他們極不可能在生產(chǎn)中使用它,因?yàn)楸仨氃诰幾g時(shí)和運(yùn)行時(shí)都在命令行上顯式啟用預(yù)覽功能。 因此,我們可以根據(jù)新信息隨意修改此設(shè)計(jì),然后再將其刻入語(yǔ)言的基石。
JEP 12中討論了當(dāng)前為顯式啟用預(yù)覽功能以進(jìn)行編譯時(shí)和運(yùn)行時(shí)而提出的標(biāo)志。 如目前所闡述的那樣,預(yù)覽功能的編譯需要在命令行--release javac編譯器的兩個(gè)標(biāo)志: --enable-preview --release --enable-preview和--release 。 同一文檔顯示了一個(gè)標(biāo)記,需要在運(yùn)行時(shí)將其傳遞給java啟動(dòng)器以啟用預(yù)覽功能: --enable-preview enable --enable-preview 。
JEP 325已經(jīng)在郵件列表上進(jìn)行了重要的討論,我在以前的博客文章“ Switch Expressions Coming Java? ”和“ 通過(guò)引入switch表達(dá)式來(lái)增強(qiáng)Java switch語(yǔ)句 。” 但是,討論主要在amber-dev和amber-spec-experts郵件列表上進(jìn)行,因此Brian Goetz提供了先前討論要點(diǎn)的摘要以及做出與“ switch expressions”預(yù)覽語(yǔ)言功能相關(guān)的決定的原因。 Goetz在此總結(jié)中總結(jié)了有關(guān)開(kāi)關(guān)表達(dá)式的預(yù)覽性質(zhì)的這一陳述。
預(yù)覽機(jī)制將使我們能夠從實(shí)際使用中收集有關(guān)功能的反饋,而不是從沒(méi)有任何理論上得出理論依據(jù),并有可能在保證最終發(fā)布之前調(diào)整規(guī)格。 因此,如果由于實(shí)際經(jīng)驗(yàn)而出現(xiàn)任何新問(wèn)題,我們很高興聽(tīng)到有關(guān)它們的消息。
在另一封(稍后)消息中 ,Goetz提供了更多與“預(yù)覽功能”概念相關(guān)的背景細(xì)節(jié)。 他寫(xiě)了:
預(yù)覽語(yǔ)言功能仍需要作為永久功能完成,并且級(jí)別與“完成”相同。 不同之處在于,我們有一個(gè)(較短的)“寬限期”,在此期間,我們有機(jī)會(huì)糾正已經(jīng)泄漏到正常流程之外的嚴(yán)重錯(cuò)誤,而不必支付不兼容罰金。 有了新的節(jié)奏,我希望大多數(shù)非平凡的語(yǔ)言功能都將通過(guò)“預(yù)覽”機(jī)制進(jìn)行。 這并不意味著它們是實(shí)驗(yàn)性的,或者質(zhì)量較低,或者沒(méi)有考慮太多。 但是,有時(shí)候確實(shí)會(huì)發(fā)生,只有在更廣泛的受眾嘗試了這些東西之后,我們才發(fā)現(xiàn)意外的交互作用,為此,Preview提供了一個(gè)簡(jiǎn)短的窗口,可以糾正這些問(wèn)題,如果它們能盡早發(fā)現(xiàn)。
Switch Expressions(JEP 325)提供了一個(gè)嘗試JEP 12中概述的“預(yù)覽語(yǔ)言功能”概念的機(jī)會(huì)。這一功能受到很多人的關(guān)注,也引起了人們的廣泛關(guān)注,這使得它成為一個(gè)有趣的功能。將JEP 12進(jìn)行測(cè)試。 當(dāng)開(kāi)發(fā)人員使用現(xiàn)在針對(duì)JDK 12的JEP 325的預(yù)覽實(shí)現(xiàn)時(shí),看到該功能的實(shí)際使用如何增強(qiáng)和削弱當(dāng)前實(shí)現(xiàn)的論點(diǎn)會(huì)很有趣。
翻譯自: https://www.javacodegeeks.com/2018/08/jdk-language-feature-switch-expressions.html
總結(jié)
以上是生活随笔為你收集整理的JDK语言功能预览:切换表达式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 怎么简单的锁定文件夹_简单性与鲁棒性–在
- 下一篇: 汤的英语怎么读 汤的英语念什么