是否可以将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 =>
/* .. */
}