我在 Kotlin 中撰寫了一些故意拋出 NullPointerException 的代碼(不管為什么)。
問題是 IntelliJ 甚至不讓我編譯它。
var x: MyClass? = MyClass()
x = null
var y = x!!.myProperty
我嘗試@Suppress("ALWAYS_NULL", "UNREACHABLE_CODE")在整個檔案上使用行內,@file:Suppress("ALWAYS_NULL", "UNREACHABLE_CODE")但它仍然不允許我編譯它。
如何編譯它?
編輯:
實際上我認為它是 IntelliJ,但即使嘗試手動編譯它也行不通。我猜編譯器比我更聰明,并且使用!!并不像我想象的那么自信。
uj5u.com熱心網友回復:
你可以做這樣的事情。
private var Nothing.myProperty: String
get() = myProperty
set(value){
myProperty = "null"
}
fun main() {
var x: MyClass? = MyClass()
var y = x!!.myProperty
}
class MyClass {
var myProperty: String? = null
}
編譯沒有問題。我認為如果類為空,那么最好制作 if...else 檢查器 但是如果類中的屬性以某種方式為空,則會帶來更多問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/408598.html
標籤:
下一篇:如何用引號包裹多行?
