import Ġjava . util . concurrent . TimeUnit Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġc sharp () ĊĠĠĠ Ġcollection Addition () Ċ } Ċ Ċ interface ĠI EventHandler Ġ{ ĊĠĠĠ Ġfun Ġget Sender (): ĠAny ? ĊĠĠĠ Ġoperator Ġfun Ġplus Assign ( event Handler : ĠI EventHandler ) ĊĠĠĠ Ġoperator Ġfun Ġminus Assign ( event Handler : ĠI EventHandler ) Ċ } Ċ Ċ class ĠEventHandler ( private Ġval Ġsender : ĠAny ? Ġ= Ġnull ) Ġ: ĠI EventHandler Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġevent Handler : ĠI EventHandler ? Ġ= Ġnull ĊĊĠĠĠ Ġoperator Ġoverride Ġfun Ġplus Assign ( event Handler : ĠI EventHandler ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . event Handler Ġ= Ġevent Handler ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġoverride Ġfun Ġminus Assign ( event Handler : ĠI EventHandler ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . event Handler Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Sender () Ġ= Ġsender ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= ĊĠĠĠĠĠĠĠ Ġevent Handler ?. get Sender ()?. toString () Ġ?: Ġkotlin . run Ġ{ Ġ" no Ġevent - handler Ġfound " Ġ} Ċ } Ċ Ċ class ĠFoo Ġ{ ĊĠĠĠ Ġval Ġclick : ĠI EventHandler Ġ= ĠEventHandler () ĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" Foo Ġas Ġsender " Ċ } Ċ Ċ private Ġfun Ġc sharp () Ġ{ ĊĠĠĠ Ġlog ln (" P ret end Ġto Ġhave ĠC # Ġevent - handler ") ĊĠĠĠ Ġwith ( Foo ()) Ġ{ ĊĠĠĠĠĠĠĠ ĠEventHandler ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Ġ+= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Fire Ġevent : Ġ$ click ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Ġ-= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Fire Ġevent : Ġ$ click ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġcollection Addition () Ġ{ ĊĠĠĠ Ġlog ln (" Demo Ġfor Ġoperator Ġon Ġarray ") ĊĠĠĠ Ġval ĠintArray Ġ= Ġarray ListOf < Int >() ĊĠĠĠ ĠintArray Ġ+= Ġ 1 ĊĠĠĠ ĠintArray Ġ+= Ġ 2 ĊĠĠĠ ĠintArray Ġ+= Ġ 3 ĊĠĠĠ ĠintArray Ġ+= Ġ 4 ĊĠĠĠ Ġlog ln (" Array Ġresult : Ġ$ int Array ") ĊĊĠĠĠ Ġval Ġstr List Ġ= ĠList ( 5 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTimeUnit . SECONDS . sleep ( 1 ) ĊĠĠĠĠĠĠĠ ĠSystem . currentTimeMillis (). toString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġnew List Ġ= Ġarray ListOf < String >() ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 1 .. 5 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnew List Ġ+= Ġi . toString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġnew List Ġ+= Ġstr List ĊĠĠĠ Ġlog ln (" List Ġresult : Ġ$ new List ") Ċ }