新聞中心
在使用 Java 編程語(yǔ)言時(shí),最常見(jiàn)的痛處之一是在存取空引用 (null reference) 成員時(shí),系統(tǒng)會(huì)報(bào)出 NullPointerException。Kotlin 可有效地避免這問(wèn)題的發(fā)生,它通過(guò)將可空類(lèi)型 (nullable type) 與非空類(lèi)型 (non-nullable type) 匯入類(lèi)型系統(tǒng),幫助您消除代碼中的 NullPointerException 錯(cuò)誤,從而提升 app 的整體質(zhì)量。Kotlin 代碼調(diào)用寫(xiě)入 Java 語(yǔ)言中的 API 時(shí),會(huì)依靠上述 API 中的可空性注解來(lái)決定每個(gè)參數(shù)的可空性,以及返回值類(lèi)型。未注解的參數(shù)和返回值類(lèi)型將被視為平臺(tái)類(lèi)型,從而弱化 Kotlin 的空值安全保證。

創(chuàng)新互聯(lián)建站專(zhuān)注于鳳岡網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供鳳岡營(yíng)銷(xiāo)型網(wǎng)站建設(shè),鳳岡網(wǎng)站制作、鳳岡網(wǎng)頁(yè)設(shè)計(jì)、鳳岡網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造鳳岡網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供鳳岡網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
***的 Android 9 包含了 Android SDK 的更新,為一系列最常用的 API 加上了可空性注解。您的 Kotlin 代碼在調(diào)用 SDK 中任一已注解的 API 時(shí),可完好保留空值安全保證。即使在使用 Java 編程語(yǔ)言時(shí),您依舊可以通過(guò)使用 Android Studio 檢測(cè)可空性協(xié)議違規(guī),并從這些注解中獲益。
新的 Android SDK 作為 Android 9 連帶發(fā)布的一部分,包含了一些常用 API 的可空性注解,當(dāng) Kotlin 調(diào)用了 SDK 中任何帶有注解的 API 時(shí),它能預(yù)留出空安全性 (null-safety) 保障。而使用 Java 的開(kāi)發(fā)者也可以利用 Android Studio 捕捉可空合約違規(guī)行為,從而有效利用這些可空性注解。
小變化 大改善
通常情況下,Kotlin 中違反可空性協(xié)議時(shí)會(huì)導(dǎo)致編譯錯(cuò)誤。為保證已包含注解的 API 可與您的現(xiàn)有代碼兼容,我們采用了一個(gè)由 Kotlin 編譯器團(tuán)隊(duì)提供的內(nèi)部機(jī)制來(lái)對(duì)***注釋的 API 進(jìn)行注解。新注釋的 API 僅觸發(fā)警告,而不會(huì)導(dǎo)致 Kotlin 編譯器報(bào)錯(cuò)。這必須使用 Kotlin 插件 1.2.60 或更新版本。
近期加入的可空性注解只會(huì)產(chǎn)生警告而非錯(cuò)誤,但在下一年度的 Android SDK 中 ,我們將提高錯(cuò)誤嚴(yán)重等級(jí)。此舉的目的是為了給開(kāi)發(fā)者預(yù)留出足夠時(shí)間調(diào)整代碼。
如何使用更與 Kotlin 更合拍的 SDK
首先,在 Android Studio 內(nèi)選擇 Tools > SDK Manager。選擇左欄中的 “Android SDK”,確保 “SDK Platforms” 的標(biāo)簽已打開(kāi)。
△ 使用 Android Studio中的 SDK Manager來(lái)為 API 28 級(jí)第 6 版安裝 SDK
檢查 Android 8.+ (P) 并點(diǎn)擊 OK。通過(guò)該步驟,可實(shí)現(xiàn) Android SDK 平臺(tái) 28 級(jí)第 6 版的安裝 (若之前尚未安裝)。此后,將項(xiàng)目的編譯 SDK 版本設(shè)置為 API 28 級(jí),來(lái)激活新款 Android Pie SDK 的可空性注釋。
△ 使用項(xiàng)目結(jié)構(gòu)對(duì)話,將項(xiàng)目的編譯 SDK 版本變更為 API 28
如果您當(dāng)前的 Kotlin 插件尚未更新到***版本,您需要通過(guò) Android Studio 對(duì)其進(jìn)行更新。請(qǐng)選擇 “Tools Kotlin > Configure Kotlin Plugin Updates” 檢查并確保 Kotlin 插件版本是 1.2.60 或更新版本。
配置設(shè)置完成后,如果您的代碼違反 Android SDK 中的可空性協(xié)議,您的項(xiàng)目將顯示警告。
此外,如果您調(diào)用的 Android API 不符合可空性要求,Android Studio 的代碼編輯器上同樣會(huì)顯示相關(guān)警告。具體示例如下:
△ 在 android.graphics.Path API 中,將空值參考作為非空類(lèi)型傳遞給已注釋的參數(shù)時(shí)的 Android Studio 警告
利用 Java 編程語(yǔ)言中的可空性注解
即使您的代碼采用的是 Java 編程語(yǔ)言,您依舊可以從新的可空性注解中獲益。在默認(rèn)狀態(tài)下,Android Studio 會(huì)顯示違反可空性協(xié)議的警告,具體示例如下:
△ 編程語(yǔ)言為 Java 時(shí),出現(xiàn)違反可空性協(xié)議的情況時(shí) Android Studio 顯示的警告示例
為保證您已激活該檢查功能,您可訪問(wèn) IDE 的設(shè)置頁(yè)面并搜索 “Constant conditions& exceptions” 檢查,并確保相關(guān)項(xiàng)已經(jīng)過(guò)檢查。
△ 使用設(shè)置下方的檢查頁(yè)面,以確保 Constant conditions& exceptions 編碼的檢查功能已激活。
如果您使用的是 Java 編程語(yǔ)言,違反可空性協(xié)議的將不會(huì)產(chǎn)生任何編譯器警告或報(bào)錯(cuò)。僅 IDE 的代碼檢查功能可檢示這些問(wèn)題。
此外,您可在整個(gè)項(xiàng)目中檢查代碼,并審閱總體結(jié)果。點(diǎn)擊 “Analyze>Inspect Code...” 來(lái)開(kāi)始該過(guò)程。
下一步
Android SDK API 的接口眾多,目前為止,我們僅標(biāo)注了小部分的 API,尚有諸多工作在等著我們。在未來(lái)即將發(fā)布的幾個(gè) Android SDK 版本中,我們將繼續(xù)為現(xiàn)有 Android API 增加可空性注解,并確保所有的新增 API 也經(jīng)過(guò)注釋這一環(huán)節(jié)。
具備與 Kotlin 更合拍的 Android SDK、AndroidX中的可空性注解 (Jetpack 系列的一部分) 以及 Android KTX之后,我們將繼續(xù)為使用 Kotlin 的開(kāi)發(fā)者改進(jìn) Android API 。如果您尚未嘗試 Kotlin,我們希望您試用一下。Kotlin 不僅能讓您的代碼更加簡(jiǎn)潔,還能提升您 app 的穩(wěn)定性。
文章名稱(chēng):AndroidPieSDK與Kotlin更合拍
分享鏈接:http://fisionsoft.com.cn/article/djiedho.html


咨詢
建站咨詢
