在我的课程init
中,属性设置为参数的值。参数或属性均不为null,但存在null指针异常
init {
creationDate = owner.network.currentDate
}
您可以尝试online here
Exception in thread "main" java.lang.NullPointerException
at Vault.<init>(Vault.kt:13)
at NetworkProductionVault.<init>(Vault.kt:65)
at Snc_tokenKt.main(snc-token.kt:13)
答案 0 :(得分:3)
在您的示例中,我将此添加到了init
中的Vault.kt
:
if (owner == null) println("owner is null")
它确实为空。
我认为原因是因为您已将此属性(owner
)声明为open
,但是在初始化超类时却引用了它。因此,此时它将为null,因为超类将尝试从子类获取值,但是子类尚未初始化。 here对此进行了更详细的说明。