在swing.event.ListSelectionChanged中键入擦除
为什么使用以下Scala Swing代码会收到关于类型擦除的模式匹配器警告:在swing.event.ListSelectionChanged中键入擦除,swing,scala,pattern-matching,type-erasure,Swing,Scala,Pattern Matching,Type Erasure,为什么使用以下Scala Swing代码会收到关于类型擦除的模式匹配器警告: import scala.swing._ object Test extends ListView(Seq(1, 2, 3)) { listenTo(selection) reactions += { case event.ListSelectionChanged(_, range, _) => println(range) } } 警告是: warning: non variable t
import scala.swing._
object Test extends ListView(Seq(1, 2, 3)) {
listenTo(selection)
reactions += {
case event.ListSelectionChanged(_, range, _) => println(range)
}
}
警告是:
warning: non variable type-argument A in type pattern
scala.swing.event.ListSelectionChanged[A] is unchecked
since it is eliminated by erasure
case event.ListSelectionChanged(_, range, _) => println(range)
^
这只是Scala Swing的糟糕设计,还是我做错了什么?这个问题在新的Scala 2.10模式匹配器中消失了。这是Scala Swing的问题。Scala swing只是另一个开始但从未完成的Scala库。我可以通过使用类型检查(带通配符)而不是提取器来消除警告<代码>案例l:event.ListSelectionChanged[\u]=>println(l.range)。但我认为这个想法是要有一个案例类提取器。