假设我有一个Java接口
public interface Bar {
public void baz(String st)
public void jaz()
}
我想在函数体中的scala中匿名实现上面的接口,如:
def foo() = {
val bar : Bar = new Bar() {
// how to do that ?
}
}
答案 0 :(得分:9)
如果必须,我会把它写成:
val bar = new Bar {
def baz(st: String): Unit = {
// method impl
}
def jaz(): Unit = {
// method impl
}
}
虽然我的偏好是尽可能避免副作用方法,但它们与函数式编程并不是很好用
答案 1 :(得分:6)
val bar = new Bar {
def baz(st: String) {
// method impl
}
def jaz() {
// method impl
}
}