MeWrite Docs

Kotlin: NullPointerException

KotlinのNullPointerExceptionの解決方法

概要

Kotlinでもnull安全機能を迂回した場合にNullPointerExceptionが発生することがあります。

エラーメッセージ

java.lang.NullPointerException: null cannot be cast to non-null type

原因

  1. !!演算子の使用: non-null assertionでnullを強制参照
  2. Javaとの相互運用: Java側からnullが渡される
  3. lateinitの未初期化: lateinit変数を初期化前に使用

解決策

1. 安全呼び出し演算子

1
val length = str?.length ?: 0

2. letを使用

1
2
3
str?.let { 
    println("Length: ${it.length}")
}

3. lateinitの確認

1
2
3
4
5
6
7
8
9
class MyClass {
    lateinit var name: String

    fun printName() {
        if (::name.isInitialized) {
            println(name)
        }
    }
}

4. エルビス演算子

1
val name = user?.name ?: "Unknown"

よくある間違い

  • !!演算子の乱用
  • Javaライブラリからの戻り値をnon-nullとして扱う

Kotlin の他のエラー

最終更新: 2025-12-09