Ċ import Ġcom . j dia z can o . cfg 4 k . byte buddy . Byte Bu ddy Binder Ċ import Ġcom . j dia z can o . cfg 4 k . json . Json Config Loader Ċ import Ġcom . j dia z can o . cfg 4 k . providers . Default Config Provider Ċ import Ġcom . j dia z can o . cfg 4 k . providers . bind Ċ import Ġcom . j dia z can o . cfg 4 k . providers . get Ċ import Ġcom . j dia z can o . cfg 4 k . sources . String Config Source Ċ import Ġutils . School Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġsource Ġ= ĠString Config Source ( school Json ) ĊĠĠĠ Ġval Ġloader Ġ= ĠJson Config Loader ( source ) ĊĠĠĠ Ġval Ġprovider Ġ= Ġ ĠDefault Config Provider ( loader , Ġbinder Ġ= ĠByte Bu ddy Binder ()) ĊĊĠĠĠ Ġval Ġsecond Prof essor Name Ġ= Ġprovider . get < String >(" prof ess ors [ 1 ]. name ") ĊĠĠĠ Ġprintln (" Second Prof essor Ġname : Ġ$ second Prof essor Name ") ĊĊĠĠĠ Ġval Ġschool Ġ= Ġprovider . bind < School >() Ġ// ĠHere Ġwe Ġwill Ġhave Ġa Ġcompiled Ġclass Ġinstead Ġof Ġa ĠProxy ĊĊĠĠĠ Ġprintln ( school ) Ġ// ĠWe Ġdon 't Ġget Ġan ĠInvocation Handler ĊĊĠĠĠ Ġprintln (" Name : Ġ${ school . prof ess ors . first (). name }") ĊĠĠĠ Ġprintln (" Age : Ġ${ school . prof ess ors . first (). age }") Ċ }