Kotlinの!!演算子について学びます。
?はnullableを表しますが、!!はnotnullを表します。
Kotlinでは、nullableのオブジェクトに対して、コンパイルすることができませんが、
notnullを示す、!!演算子を使用することで、明示的にnullを代入しているオブジェクトの
内部にアクセスするコードがあってもコンパイルすることが可能です。
例を見ていきましょう
1 2 3 4 5 6 |
fun main(args: Array<String>) { // non null object var str: String? = null // 1.!!演算子により、notnullを主張する println(str!!.toUpperCase()) } |
nullableオブジェクトstrに!!演算子を使用することにより、コンパイルが通ります。
実行結果は、
Exception in thread “main” kotlin.KotlinNullPointerException
at MainKt.main(main.kt:5)
となり、当然Exceptionを吐きましたが、コンパイル実行することはできました。
code
more code
~~~~