package Ġio . null ables . api . playground . patterns . factory _ method Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠIn no ĠF ang Ġon Ġ 2 0 1 7 / 9 / 1 . Ċ Ġ*/ Ċ class ĠCake Factory Ġ: ĠFactory () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠCake > Ġcreate Product ( cl z : ĠClass < T >): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġc ake : ĠCake ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc ake Ġ= ĠClass . forName ( cl z . name ). get Constructor (). newInstance () Ġas ĠCake ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġc ake Ġas ĠT ? ĊĠĠĠ Ġ} Ċ } Ċ