Inicializace – to řeší (v tak 99 % případů) třeba modifier final v Javě.
Zrovna v Javě je problém s tím, že metodu nejde volat s pojmenovanými argumenty - tj. volání metod s mnoha argumenty jsou nepřehledná, tj. u objektů, kde je k inicializaci třeba mnoho argumentů, je použití konstruktoru nepřehledné. Pokud se tedy inicializaci rozhodnete provádět mimo konstruktor, final
nepomůže.
Neumí-li jazyk dobře pracovat s nullability, hodnota null může překvapit.
Souhlasím, je to spíš problém konkrétní implementace než problém null
.
implementovat vlastní Option, která by se překládala interně na null, kde by to šlo.
BTW F# to takhle má implementované (na CLR jde volat metody, i když je this == null
).