Having another issue with 1.9.20. Getting a "Property must be initialized, be final, or be abstract" error. I have an open class with an uninitialized val that is set in an init, so it is effectively final.
Copy code
open class MyClass {
override val myVal: MyInnerClass
init {
myVal = MyInnerClass()
}
inner class MyClass() {
...
}
}
m
Mikhail
10/25/2023, 4:43 AM
Copy code
override val myVal: MyInnerClass = MyInnerClass()
You need not use init block here
Also you don't extend base class or interface, so using
override
modifier is error too.
c
CLOVIS
10/25/2023, 7:25 AM
override
means "I'm replacing a variable declared by a supertype". Your class has no supertypes, so
override
is forbidden.
As @Mikhail said, you can initialize the value directly on declaration.
Copy code
class MyClass {
val myVal = MyInnerClass()
inner class MyInnerClass
}
k
Klitos Kyriacou
10/25/2023, 8:25 AM
This should be an error in older releases, not just 1.9.20.
➕ 2
d
Donny
10/25/2023, 10:35 AM
Sorry. It does extend a base class. I just didn't list it.