package Ġs ct esting playground Ċ Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . K Parameter Ċ import Ġkotlin . reflect . full . find Annotation Ċ Ċ internal Ġclass ĠInst agram Type Factory Ġ: ĠDefault Type Factory () Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠK Parameter . create Argument (): ĠAny ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( type . classifier ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInt :: class Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠByte :: class Ġ-> Ġ 0 . to Byte () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShort :: class Ġ-> Ġ 0 . to Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠString :: class Ġ-> Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFloat :: class Ġ-> Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLong :: class Ġ-> Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList :: class Ġ-> Ġempty List < String >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġif Ġ(( type . classifier Ġas ĠK Class < out ĠAny >). find Annotation < Inst agram ErrorCode >() Ġ!= Ġnull ) ĠErrorCode . TimeOut Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ @ Target ( Annotation Target . FIELD , ĠAnnotation Target . CLASS ) Ċ @ Retention ( Annotation Retention . RUNTIME ) Ċ annotation Ġclass ĠInst agram ErrorCode