import Ġkotlin .* Ċ import Ġkotlin . collections .* Ċ Ċ @ Compile Time Calculation Ċ fun Ġclass Cast With Exception ( a : ĠAny ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġa Ġas ĠInt ĊĠĠĠĠĠĠĠ Ġ" Given Ġvalue Ġis Ġ$ a Ġand Ġits Ġdouble d Ġvalue Ġis Ġ${ 2 Ġ* Ġa }" ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠClass CastException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Given Ġvalue Ġis nt 't ĠInt ; ĠException Ġmessage : Ġ\" ${ e . message }\ "" ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Compile Time Calculation Ċ fun Ġsafe Class Cast ( a : ĠAny ): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġ( a Ġas ? ĠString )?. length Ġ?: Ġ- 1 Ċ } Ċ Ċ @ Compile Time Calculation Ċ fun Ġ< T > Ġunsafe Class Cast (): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġ 1 Ġas ĠT Ċ } Ċ Ċ @ Compile Time Calculation Ċ fun Ġ< T > Ġget Int List () Ġ= ĠlistOf < Int >( 1 , Ġ 2 ) Ġas ĠT Ċ Ċ @ Compile Time Calculation Ċ fun Ġ< T > ĠgetString Nullable List () Ġ= ĠlistOf < String ? >( null , Ġ" 1 ") Ġas ĠT Ċ Ċ @ Compile Time Calculation Ċ fun Ġget Length ( str : ĠString ) Ġ= Ġstr . length Ċ Ċ @ Compile Time Calculation Ċ class ĠA < T >() Ġ{ ĊĠĠĠ Ġfun Ġunsafe Cast (): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 Ġas ĠT ĊĠĠĠ Ġ} Ċ } Ċ Ċ const Ġval Ġa 1 Ġ= Ġ<! EVAL U ATED : Ġ` Given Ġvalue Ġis Ġ 1 0 Ġand Ġits Ġdouble d Ġvalue Ġis Ġ 2 0 ` !> class Cast With Exception ( 1 0 ) <! > Ċ const Ġval Ġa 2 Ġ= Ġ<! EVAL U ATED : Ġ` Given Ġvalue Ġis nt 't ĠInt ; ĠException Ġmessage : Ġ" kotlin . String Ġcannot Ġbe Ġcast Ġto Ġkotlin . Int "` !> class Cast With Exception (" 1 0 ") <! > Ċ Ċ const Ġval Ġb 1 Ġ= Ġ<! EVAL U ATED : Ġ`- 1 ` !> safe Class Cast ( 1 0 ) <! > Ċ const Ġval Ġb 2 Ġ= Ġ<! EVAL U ATED : Ġ` 2 ` !> safe Class Cast (" 1 0 ") <! > Ċ Ċ // Ġin Ġthis Ġexample Ġall Ġunsafe Ġcast Ġwill Ġbe Ġ" successful ", Ġbut Ġwill Ġfall Ġwhen Ġtrying Ġto Ġassign Ċ const Ġval Ġc 1 Ġ= Ġ<! EVAL U ATED : Ġ` 1 ` !> unsafe Class Cast < Int >() <! > Ċ const Ġval Ġc 2 Ġ= Ġ<! W AS _ NOT _ EVAL U ATED : Ġ` Ċ Exception Ġjava . lang . Class CastException : Ġkotlin . Int Ġcannot Ġbe Ġcast Ġto Ġkotlin . String Ċ ĉ at ĠClass CastException Kt .< cl init >( class CastException . kt : 4 8 )` !> unsafe Class Cast < String >() <! > Ċ Ċ const Ġval Ġd 1 Ġ= ĠA < Int >(). <! EVAL U ATED : Ġ` 1 ` !> unsafe Cast () <! > Ċ const Ġval Ġd 2 Ġ= ĠA < String >(). <! W AS _ NOT _ EVAL U ATED : Ġ` Ċ Exception Ġjava . lang . Class CastException : Ġkotlin . Int Ġcannot Ġbe Ġcast Ġto Ġkotlin . String Ċ ĉ at ĠClass CastException Kt .< cl init >( class CastException . kt : 5 1 )` !> unsafe Cast () <! > Ċ Ċ const Ġval Ġstring List Ġ= Ġget Int List < List < String >> (). <! W AS _ NOT _ EVAL U ATED : Ġ` Ċ Exception Ġjava . lang . Class CastException : Ġkotlin . Int Ġcannot Ġbe Ġcast Ġto Ġkotlin . String Ċ ĉ at ĠClass CastException Kt . string List .< anonymous >( class CastException . kt : 5 4 ) Ċ ĉ at ĠClass CastException Kt . string List . Function $ 0 . invoke ( class CastException . kt : 0 ) Ċ ĉ at ĠStandard Kt . kotlin . let ( Standard . kt : 3 2 ) Ċ ĉ at ĠClass CastException Kt .< cl init >( class CastException . kt : 5 3 )` !> let Ġ{ ĊĠĠĠ Ġit [ 0 ]. length Ċ } <! > Ċ const Ġval Ġnullable String List Ġ= ĠgetString Nullable List < List < String >> (). <! W AS _ NOT _ EVAL U ATED : Ġ` Ċ Exception Ġjava . lang . NullPointerException Ċ ĉ at ĠClass CastException Kt . nullable String List .< anonymous >( class CastException . kt ) Ċ ĉ at ĠClass CastException Kt . nullable String List . Function $ 0 . invoke ( class CastException . kt : 0 ) Ċ ĉ at ĠStandard Kt . kotlin . let ( Standard . kt : 3 2 ) Ċ ĉ at ĠClass CastException Kt .< cl init >( class CastException . kt : 5 6 )` !> let Ġ{ Ġit [ 0 ]. length Ġ} <! > Ċ const Ġval Ġnullable String Length Ġ= Ġ<! W AS _ NOT _ EVAL U ATED : Ġ` Ċ Exception Ġjava . lang . IllegalArgumentException : ĠParameter Ġspecified Ġas Ġnon - null Ġis Ġnull : Ġmethod ĠClass CastException Kt . getLength , Ġparameter Ġstr Ċ ĉ at ĠClass CastException Kt .< cl init >( class CastException . kt : 3 1 )` !> getLength ( getString Nullable List < List < String >> ()[ 0 ]) <! > Ċ