( BaT | 2016. 04. 13., sze – 22:12 )

Miért nem lehet azt mondani, hogy az isAdult-ot nem lehet nullal meghívni, és boldogan elszállunk egy NPE-vel ha mégis? Mivel a függvény nem tudja eldönteni, hogy null esetén mi lenne a helyes válasz, ezért nagyon mást nem tehetsz, egy IllegalArgumentException sem jobb, mert az alapprobléma az, hogy egy exceptionnel mellékhatást okozol. De igazad van, tényleg jobb lenne, ha már a fordító megfogná ezt az esetet, és nem engedné nullable típussal meghívni a függvényt. De mi van akkor, ha azt mondom, hogy ahol bejön a user input, ott nem engedsz null-t tovább, és ezt nem neked kell megírnod, hanem kapsz library támogatást? Tulajdonképpen ugyanazt kell csinálni, mint a másik oldalon, a DB-vel való kommunikáció esetén.

DB elérésre ScalikeJDBC-t használunk, ez pl. single vagy first result esetén eleve Optiont ad. Paraméternek átadott Optiont automatikusan kezeli, és ha egy adott mező nullable, akkor ki lehet szedni az értékét Optionként (Opt suffix). Ha egy értéket nem optionalként szeretnénk megkapni, de az null, azt a library exceptionnel honorálja.