package Ġiv _ properties Ċ Ċ import Ġutil . TODO Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ Ċ class ĠLazy Property ( val Ġinitializer : Ġ() Ġ-> ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġ_ lazy : ĠCompletableFuture < Int > Ġ= ĠCompletableFuture () ĊĠĠĠ Ġval Ġlazy : ĠInt Ġget (): Int Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(!_ lazy . is Done ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ lazy . complete ( initializer ()); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ_ lazy . get () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġtodo Task 3 3 (): ĠNothing Ġ= ĠTODO ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ ĠTask Ġ 3 3 . ĊĠĠĠĠĠĠĠ ĠAdd Ġa Ġcustom Ġgetter Ġto Ġmake Ġthe Ġ' lazy ' Ġval Ġreally Ġlazy . ĊĠĠĠĠĠĠĠ ĠIt Ġshould Ġbe Ġinitialized Ġby Ġthe Ġinvocation Ġof Ġ' initializer ()' ĊĠĠĠĠĠĠĠ Ġat Ġthe Ġmoment Ġof Ġthe Ġfirst Ġaccess . ĊĠĠĠĠĠĠĠ ĠYou Ġcan Ġadd Ġas Ġmany Ġadditional Ġproperties Ġas Ġyou Ġneed . ĊĠĠĠĠĠĠĠ ĠDo Ġnot Ġuse Ġdeleg ated Ġproperties ! ĊĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġreferences Ġ= Ġ{ ĠLazy Property ({ Ġ 4 2 Ġ}). lazy Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ