以下代码可以将 Player
类中的playerName
属性赋值为空(playerName
属性声明为非空),Kotlin编译器能够成功编译,但是执行时抛出java.lang.NullPointerException
。这算是Kotlin在空值处理上的BUG吗?
package com.example.demo
class Player(_name: String) {
val playerName: String = initPlayerName()
private fun initPlayerName(): String = name
val name: String = _name
}
fun main() {
val player = Player("Jack")
val playerName = player.playerName
println(playerName)
println(playerName.length)
println(player.name)
}