As you can see from the two properties in this class:
@inject lateinit var foo: Foo
@set:Inject var bar: Bar? = null
Both are public, or so I thought. I’m wondering why I would need to add @set in one of them. In the decompiled Java code:
@inject @NotNull
public Foo foo;
@Nullable
private Bar bar;
Is there a reason why lateinits are public, and nullables are not? I’m guessing it’s to make sure you can’t directly interact with the nullable.
Any light shed on this is greatly appreciated.