Как анонимно реализовать интерфейс Java в scala?
Предположим, что у меня есть Java inteface
public interface Bar {
public void baz(String st)
public void jaz()
}
Я хочу реализовать анонимный интерфейс выше в scala внутри тела функции, например:
def foo() = {
val bar : Bar = new Bar() {
// how to do that ?
}
}
Ответы
Ответ 1
Если бы мне пришлось, я бы написал его как:
val bar = new Bar {
def baz(st: String): Unit = {
// method impl
}
def jaz(): Unit = {
// method impl
}
}
Хотя я предпочитаю избегать побочных эффектов, насколько это возможно, они не очень хорошо играют с функциональным программированием
Ответ 2
val bar = new Bar {
def baz(st: String) {
// method impl
}
def jaz() {
// method impl
}
}