NullPointerException而所有值都不为null

时间:2018-11-22 16:56:47

标签: kotlin

在我的课程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)

1 个答案:

答案 0 :(得分:3)

在您的示例中,我将此添加到了init中的Vault.kt

if (owner == null) println("owner is null")

它确实为空。

我认为原因是因为您已将此属性(owner)声明为open,但是在初始化超类时却引用了它。因此,此时它将为null,因为超类将尝试从子类获取值,但是子类尚未初始化。 here对此进行了更详细的说明。