Hak*_*kar 2 closures scala anonymous-class
是否可以将Unit转换为匿名类的方法?
代替:
addSelectionListener(new SelectionListener{
def widgetSelected(SelectionEvent event): Unit = {
//...
}
}
Run Code Online (Sandbox Code Playgroud)
对此:
addSelectionListener toAnonymousClass(classOf[SelectionListener], {
/* .. */
})
Run Code Online (Sandbox Code Playgroud)
如果没有任何库可以做到这一点,我将如何制作一个?可能吗?
我相信以下隐式转换应该达到你想要的结果:
implicit def selectionListener (f: SelectionEvent => Unit) =
new SelectionListener {
def widgetSelected(event: SelectionEvent) {
f(event)
}
}
Run Code Online (Sandbox Code Playgroud)
它会自动转换类型的函数文本SelectionEvent => Unit到SelectionListener这样你就可以使用addSelectionListener方法如下所示:
addSelectionListener { event: SelectionEvent =>
/* .. */
}
Run Code Online (Sandbox Code Playgroud)