Scala - 删除模式定义中的类型注释

Scala - Remove type annotation in pattern definition

class MyClass

val list: List[Any] = ...

list match {
  case List(t: MyClass) => 
  case _ => 
}

第一个案例有什么问题?在 IDEA 中,我一直看到一个黄色指示器,告诉我 "Remove type annotation from pattern definition"。

没有错,假设您确实想要匹配 class MyClass 的一个元素的列表。如果你有一个 List[MyClass] ,这个警告将很有用,在这种情况下,如果列表元素的类型发生变化,检查将是多余的并且很容易被遗忘;可能 IDEA 检查是针对这些情况的,但无法将它们与您的情况区分开来。