package Ġcom . any more . and kit . mv vm Ċ Ċ import Ġjava . lang . reflect . Parameterized Type Ċ import Ġkotlin . reflect . K Class Ċ Ċ /** Ċ Ġ* Ġ å¯¹äºİ Kotlin æľī åħ³ Class åıį å°Ħ çŃī çĽ¸åħ³ çļĦæĸ¹æ³ķ æī©å±ķ Ċ Ġ* ĠCreated Ġby Ġli uy uan ma o Ġon Ġ 2 0 1 9 / 1 1 / 7 . Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > Ġparse Class Generic Params ( clazz : ĠK Class <* >, Ġindex : ĠInt Ġ= Ġ 0 ): ĠClass < T > Ġ{ ĊĠĠĠ Ġval Ġparameter ized Type Ġ= Ġclazz . java . generic Super class Ġas ĠParameter ized Type ĊĠĠĠ Ġval Ġgeneric Params Ġ= Ġparameter ized Type . actual Type Arguments ĊĠĠĠ Ġrequire (! generic Params . isNull OrEmpty ()) Ġ{ Ġ" Class < ${ clazz . qualified Name }> Ġhas Ġno Ġgeneric Ġparams !" Ġ} ĊĠĠĠ Ġrequire ( index Ġin Ġindex Ġuntil Ġgeneric Params . size ) Ġ{ Ġ" Class < ${ clazz . qualified Name }> Ġhas Ġ${ generic Params . size } Ġbut Ġyou Ġcall Ġindex Ġ= Ġ$ index " Ġ} ĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġreturn Ġgeneric Params [ index ] Ġas ĠClass < T > Ċ } Ċ Ċ /** Ċ Ġ* Ġèİ·åıĸ èĩªå·± ç±»çļĦ Class çļĦ æ³Ľ åŀĭ åıĤæķ° åĪĹè¡¨ ä¸Ń ç¬¬ [ index ] ä¸ª æ³Ľ åŀĭ åıĤæķ° çļĦ ç±»åŀĭ Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > ĠAny . getClass Generic Params ( index : ĠInt Ġ= Ġ 0 ): ĠClass < T > Ġ{ ĊĠĠĠ Ġreturn Ġparse Class Generic Params ( this :: class , Ġindex ) Ċ }