报告在一系列 if-else 语句中的类型检查和类型转换,并将其替换为模式匹配。

示例:


  val value = 0
  if (value.isInstanceOf[Int]) {
    val x = value.asInstanceOf[Int] + 1
    val y = value.asInstanceOf[Int] + 2
  } else if (value.isInstanceOf[Long]) {
    val x = value.asInstanceOf[Long]
    println(x)
  }

在应用快速修复后:


  val value = 0
  value match {
    case i: Int =>
      val x = i + 1
      val y = i + 2
    case x: Long =>
      println(x)
    case _ =>
  }