// ĠTARGET _ BACKEND : ĠJVM Ċ // ĠWITH _ RUNTIME Ċ // ĠMODULE : Ġlib Ċ // ĠFILE : ĠJava Ann . java Ċ Ċ import Ġjava . lang . annotation . Retention ; Ċ import Ġjava . lang . annotation . RetentionPolicy ; Ċ Ċ @ Retention ( RetentionPolicy . RUNTIME ) Ċ @ interface ĠJava Ann Ġ{ ĊĠĠĠ ĠClass <?> [] Ġvalue (); Ċ } Ċ Ċ class ĠO Ġ{} Ċ class ĠK Ġ{} Ċ Ċ // ĠFILE : ĠMy Java Class . java Ċ Ċ @ Java Ann ({ O . class , ĠK . class }) Ċ class ĠMy Java Class Ġ{} Ċ Ċ // ĠMODULE : Ġmain ( lib ) Ċ // ĠFILE : Ġ 1 . kt Ċ Ċ class ĠO Ċ class ĠK Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġval Ġargs Ġ= ĠMy Java Class :: class . java . getAnnotation ( Java Ann :: class . java ). value ĊĠĠĠ Ġval Ġarg Name 1 Ġ= Ġargs [ 0 ]. java . simple Name Ġ?: Ġ" fail Ġ 1 " ĊĠĠĠ Ġval Ġarg Name 2 Ġ= Ġargs [ 1 ]. java . simple Name Ġ?: Ġ" fail Ġ 2 " ĊĠĠĠ Ġreturn Ġarg Name 1 Ġ+ Ġarg Name 2 Ċ } Ċ