Recently IntelliJ suggested to add final
to one of a val
properties. This particular property was initialized in init {}
block. I've tried to find out what is the semantics of final val
construct and when should I use it, but Kotlin is all about immutability and how val
is equivalent of final
in Java and so results were so noisy, that I couldn't find anything.
Example:
final val id: Int // `final` suggested by IDE
init { id = 1 }
What is the meaning and possible usages of similar property? By applying final
what limitations it implies beyond immutability, which is already known? Does it have anything to do with inheritance or external access?
IntelliJ stopped sugessting final
if property is private
.