タイトルの通りなんですが、JetBrainsさんが公式で Zero-overhead null-safety とか書いているおかげで信じている人もいるかもしれません。ですが、それは正しくありません。 試しに、次のコードをコンパイルしてみましょう。 fun double(x: Int?): Int = x?.let{ it * it } ?: 0 クラスファイル BoxingKt.class が生成されるので、javapしてみましょう。 Compiled from "Boxing.kt" public final class BoxingKt { public static final int foo(java.lang.Integer); Code: 0: aload_0 1: dup 2: ifnull 21 5: astore_1 6: nop 7: aload_1 8: checkc