Java 7的這個新特性改變了警告的對象。構(gòu)建這些類型畢竟有破壞類型安全的風(fēng)險,這總得有人知道。但 API 的用戶對此是無能為力的,不管doSomething()是不是干了壞事,破壞了類型安全,都不在API用戶的控制范圍之內(nèi)。
十堰鄖陽ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
真正需要看到這個警告信息的是寫doSomething()的人,即API的創(chuàng)建者,而不是使用者。所以Java 7把警告信息從使用API的地方挪到了定義API的地方。
過去是在編譯使用API的代碼時觸發(fā)警告,而現(xiàn)在是在編譯這種可能會破壞類型安全的API時觸發(fā)。編譯器會警告創(chuàng)建這種API的程序員,讓他注意類型系統(tǒng)的安全。
為了減輕API開發(fā)人員的負擔(dān),Java 7還提供了一個新注解java.lang.SafeVarargs。把這個注解應(yīng)用到API方法或構(gòu)造方法之中,則會產(chǎn)生類型警告。通過用@SafeVarargs對這種方法進行注解,開發(fā)人員就不會在里面進行任何危險的操作,在這種情況下,編譯器就不會再發(fā)出警告了。
類型系統(tǒng)的修改
雖然把警告信息從一個地方挪到另一個地方不是改變游戲規(guī)則的語言特性,但也證明了我們之前提到的觀點——Coin項目曾奉勸諸位貢獻者遠離類型系統(tǒng),因為把這么一個小變化講清楚要大費周章。這個例子表明搞清楚類型系統(tǒng)不同特性之間如何交互是多么費心費力,而且對語言的修改被實現(xiàn)后又會怎么影響這種交互。這還不是特別復(fù)雜的修改,更大的變動所涉及的內(nèi)容還會更多,其中還包括大量微妙的分支。
最后這個例子闡明了由小變化引發(fā)的錯綜復(fù)雜的影響。我們對Coin項目中改進的討論也結(jié)束了。盡管它們幾乎全都是語法上的小變化,但跟實現(xiàn)它們的代碼量相比,它們所帶來的正面影響還是很可觀的。一旦開始使用,你就會發(fā)現(xiàn)這些特性對程序真的很有幫助!
小結(jié)
修改語言非常困難。而用類庫實現(xiàn)新特性總是相對容易一些,當(dāng)然并不是所有特性都能用類庫實現(xiàn)。面對挑戰(zhàn)時,語言設(shè)計師可能會做出一些比他們的預(yù)想更輕微、更保守的調(diào)整。
現(xiàn)在,我們該去看看構(gòu)成發(fā)布版本更重要的東西了,先從Java 7中某些核心類庫的變化開始。我們的下一站是I/O類庫,那里可以說是發(fā)生了天翻地覆的變化。在此之前,希望你已經(jīng)掌握了Java之前的版本處理I/O的方法,因為Java 7中的這些類(有時候被稱為NIO.2)是構(gòu)建在之前框架基礎(chǔ)之上的。
如果你想看到更多關(guān)于TWR實戰(zhàn)的例子,或者想要了解最新、高性能的I/O類,可以參考創(chuàng)新互聯(lián)其他相關(guān)文章。
文章題目:為何找不到Java7中的警告
新聞來源:http://chinadenli.net/article42/geopec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、靜態(tài)網(wǎng)站、ChatGPT、移動網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)