package Ġcom . sol are x soft . kotlin learning Ċ Ċ import Ġkotlin . properties . ReadWrite Property Ċ import Ġkotlin . reflect . K Property Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠSol are x Ġon Ġ 2 0 2 0 / 4 / 2 7 / 5 : 0 4 ĠPM Ċ Ġ* ĠDesc : Ċ Ġ*/ Ċ open Ġclass ĠBy Ref Ġ{ ĊĠĠĠ Ġval Ġreal Obj : ĠAny Ġ= ĠAny () ĊĊĠĠĠ Ġvar Ġhello : ĠBoolean Ġby ĠRead Write By Boolean ( false ) Ċ } Ċ class ĠRead Write By Boolean ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠdefaultValue : Boolean Ġ= Ġfalse Ċ ): ĠRead Write Property < By Ref , Boolean >{ ĊĠĠĠ Ġoverride Ġfun ĠgetValue ( this Ref : ĠBy Ref , Ġproperty : ĠK Property < *> ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" get Ġ--> Ġ${ property . name }") ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetValue ( this Ref : ĠBy Ref , Ġproperty : ĠK Property <* >, Ġvalue : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" set Ġ--> Ġ${ property . name }") ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠHi Ref : ĠBy Ref () Ġ{ ĊĠĠĠ Ġvar Ġworld : ĠBoolean Ġby ĠRead Write By Boolean ( false ) Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġby Ref Ġ= ĠBy Ref () ĊĠĠĠ Ġprintln ( by Ref . hello ) ĊĠĠĠ Ġby Ref . hello Ġ= Ġtrue ĊĠĠĠ Ġprintln ( Hi Ref . world ) ĊĠĠĠ ĠHi Ref . world Ġ= Ġtrue Ċ }