Kotlin
Leaking 'this' in constructor
Warning
New
Last modified: 03 December 2024 Reports unsafe operations with this
during object construction including:
Accessing a non-final property during class initialization: from a constructor or property initialization
Calling a non-final function during class initialization
Using
this
as a function argument in a constructor of a non-final class
If other classes inherit from the given class, they may not be fully initialized at the moment when an unsafe operation is carried out.
Example:
abstract class Base {
val code = calculate()
abstract fun calculate(): Int
}
class Derived(private val x: Int) : Base() {
override fun calculate() = x
}
fun testIt() {
println(Derived(42).code) // Expected: 42, actual: 0
}
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
LeakingThis
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Kotlin, 243.23126-IJ |
Thanks for your feedback!
Was this page helpful?