早安 Kotlin 大师。
我有一个继承结构,其中抽象超类实现了一些共享的数据检查。编译器不会抱怨,但在执行时 JVM 会抛出 IllegalArgumentException
编码
fun main(args: Array<String>) {
val foo = Child("NOT_BLANK")
}
abstract class Parent(
open val name: String = "NOT_BLANK"
) {
init {
require(name.isNotBlank()) { "Firstname must not be blank" }
}
}
data class Child(
override val name: String = "NOT_BLANK"
) : Parent(
name = name
)
异常如下所示
Exception in thread "main" java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.text.StringsKt__StringsJVMKt.isBlank, parameter $receiver
at kotlin.text.StringsKt__StringsJVMKt.isBlank(StringsJVM.kt)
at com.systemkern.Parent.<init>(DataClassInheritance.kt:24)
at com.systemkern.Child.<init>(DataClassInheritance.kt:30)
at com.systemkern.DataClassInheritanceKt.main(DataClassInheritance.kt:17)
谢谢你的时间
一切顺利