I have been using both of them, both of them provide safety for NullPointerException
but the lateinit
can cause UnInitializedPropetyException
, So which of these two is safer. What is the best use case for each of them, when the lateinit
best fits and when lazy
best fits?
The point I am trying to make is based on
- Safety //
lateinit
saves from NPE but it can throwUnInitializedPropetyException
- Optimality
Is not it better to go for lazy
, when one does not really need mutable property?
What is the usefulness of lateinit
?
when lateinit var abc:Def
can give UnInitializedPropetyException
and
var abc:Def?=null
can give NPE
, in both cases we have mutability and exception.