Google在發布最新Android Pie的同時,也發布了新的Android SDK,為其中一些常用的API加入可空註釋(Nullability Annotation),確保開發者在使用Kotlin開發時的Null安全性,而即便是Java的開發者也能獲得這項更新帶來的好處。

Google提到,使用Java的時候,最常遭遇到的陷阱就是嘗試存取NULL參照的成員,導致獲得NullPointerException錯誤。Kotlin透過將「可空」和「不可空」類別加入類別系統,以保護程式碼不會出現這樣的錯誤,這能幫助消除NullPointerExceptions錯誤,以提高整體應用程式品質。也就是說,當Kotlin程式碼呼叫用Java撰寫的API時,會仰賴這些可空註釋來決定每個參數以及回傳類別的可空性,而沒有註釋的參數和回傳類別將被視為平臺類別,而這樣會削弱Kotlin的NULL安全性保證。

現在新的Android SDK作為Android 9連帶發布的一部分,包含了一些常用API的可空註釋,當Kotlin呼叫了任何帶有註釋的API,將預留NULL安全性保證。而使用Java的開發者,也可以透過Android Studio所捕捉到的可空合約違規行為,從這些註釋獲得除錯上的好處。

正常來說,Kotlin中的可空合約違規會導致編譯錯誤,但是Google表示,為了要確保新的註釋API與現有程式碼相容,Kotlin編譯器團隊透過內部機制會將API標記為近期加入註釋,這些近期加入註釋的API只會產生警告而非錯誤,讓開發者有足夠的時間調整,但在下一年度的Android SDK,Google就會提升嚴重等級,對該行為發出編譯器錯誤。

由於Android SDK API介面很大,目前Google只註釋了一小部分的API,接下來在幾個Android SDK版本中,會繼續為既存和新的Android API添加可空註釋。


Advertisement

更多 iThome相關內容