package Ġpy x is . uz uki . live . rich util sk t . utils Ċ Ċ import Ġkotlin . reflect . K Class Ċ Ċ /** Ċ Ġ* ĠClass Ġfor Ġgenerate ĠInstance Ġof Ġgiven ĠClass Ġobject Ċ Ġ* Ċ Ġ* ĠUs ages : Ċ Ġ* Ġ 1 . ĠConstructor Ġhasn 't Ġany Ġparameter Ċ Ġ* Ġval Ġsample Class Obj Ġ= ĠR Constructor Builder ( Sample Class :: class . java ). newInstance () Ċ Ġ* Ċ Ġ* Ġ 2 . ĠConstructor Ġhas Ġat Ġleast Ġone Ġparameter Ċ Ġ* Ġval Ġsample Class 2 Obj Ġ= ĠR Constructor Builder ( Sample Class 2 :: class . java ) Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġ. add Parameter ( String :: class . java , Ġ" ABC ") Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġ. add Parameter ( Int :: class , Ġ 2 0 ) Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġ. newInstance () Ċ Ġ* Ċ Ġ*/ Ċ class ĠR Constructor Builder < T >( private Ġval Ġtarget Cls : ĠClass < T >) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Map Ġ= ĠLinkedHashMap < Class <* >, ĠAny ?> () ĊĊĠĠĠ Ġfun Ġadd Parameter ( cls : ĠClass <* >, Ġvalue : ĠAny ?): ĠR Constructor Builder < T > Ġ= Ġthis . apply Ġ{ Ġm Map [ cls ] Ġ= Ġvalue Ġ} ĊĠĠĠ Ġfun Ġadd Parameter ( cls : ĠK Class <* >, Ġvalue : ĠAny ?): ĠR Constructor Builder < T > Ġ= Ġthis . apply Ġ{ Ġm Map [ cls . java ] Ġ= Ġvalue Ġ} ĊĊĠĠĠ Ġfun Ġnew Instance ( map : ĠMap < Class <* >, ĠAny ?> Ġ= Ġm Map ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Array Ġ= Ġmap . keys . to Typed Array () ĊĠĠĠĠĠĠĠ Ġval Ġobj Array Ġ= Ġmap . values . to Typed Array () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtarget Cls . get Constructor (* key Array ). newInstance (* obj Array ) ĊĠĠĠ Ġ} Ċ }