是否可以将Unit转换为匿名类的方法?

代替:

addSelectionListener(new SelectionListener{
    def widgetSelected(SelectionEvent event): Unit = {
       //...
    }
}

对此:
addSelectionListener toAnonymousClass(classOf[SelectionListener], {
    /* .. */
})

如果没有任何库可以做到这一点,那我该怎么做呢?可能吗?

最佳答案

我相信以下隐式转换应能达到您想要的结果:

implicit def selectionListener (f: SelectionEvent => Unit) =
  new SelectionListener {
    def widgetSelected(event: SelectionEvent) {
      f(event)
    }
  }

它将自动将类型为SelectionEvent => Unit的函数文字转换为SelectionListener,因此您可以使用addSelectionListener方法,如下所示:
addSelectionListener { event: SelectionEvent =>
    /* .. */
}

09-11 13:36