【发布时间】:2012-07-18 01:17:36
【问题描述】:
为什么我会收到关于使用以下 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 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 swing 问题。 Scala swing 只是另一个开始但从未完成的 scala 库。
-
我可以通过使用类型检查(使用通配符)而不是提取器来消除警告。
case l: event.ListSelectionChanged[ _ ] => println( l.range )。但我认为这个想法是拥有案例类提取器。
标签: swing scala pattern-matching type-erasure