Scala: NullPointerException
Scalaでnull参照にアクセスした場合のエラー
概要
Scalaでnullオブジェクトのメソッドやフィールドにアクセスしようとした場合に発生するエラーです。Javaとの相互運用時に特に発生しやすいです。
エラーメッセージ
java.lang.NullPointerException
at com.example.MyClass.method(MyClass.scala:10)
原因
- Javaライブラリからのnull: JavaメソッドがnullをJを返す
- 初期化前のアクセス: 遅延初期化されていない変数へのアクセス
- varの未初期化: varをnullで初期化
- nullを許容する設計: Option を使用していない
解決策
1. Option を使用
| |
2. Javaとの相互運用
| |
3. null チェック
| |
4. lazy val の適切な使用
| |
5. 初期化順序に注意
| |
6. case class のコピー
| |
7. コンパイラオプション
| |
よくある間違い
- JSONパーサーからのnullフィールドを考慮していない
- データベースのNULL値の処理
- Javaコレクションのnull要素
- リフレクションで取得した値
Scala の他のエラー
この記事は役に立ちましたか?