【问题标题】:Type erasure in swing.event.ListSelectionChanged在 swing.event.ListSelectionChanged 中键入擦除
【发布时间】: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


【解决方案1】:

新的 Scala 2.10 模式匹配器已解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多