明示的に null で初期化されている変数定義を報告します。

var v: T = null: には、以下の 3 つのパターンがあります。

  1. vオプションの値である
    → 慣用的で型セーフな Option[T] 型を使用している
  2. v未初期化の値である (値を代入する必要がある)
    → 明確で簡潔、かつプラットフォームに依存しない _ (Scala 2) または scala.compiletime.uninitialized (Scala 3) をイニシャライザーとして使用している
  3. パフォーマンスの最適化を行っている (null 値を実際に使用している)
    → 安全でないコードのインスペクションを明示的に抑止している

以下 2 つのクイックフィックスが提供されます。

例:


  class Test {
    var optional: String = null
    var uninit: String = null

    uninit = "initialized later"
  }

クイックフィックス適用後:


  class Test {
    var optional: Option[String] = None
    var uninit: String = _

    uninit = "initialized later"
  }