如何在scala中匿名实现Java接口?

时间:2011-07-06 18:06:00

标签: java scala

假设我有一个Java接口

public interface Bar {

  public void baz(String st)
  public void jaz()
}

我想在函数体中的scala中匿名实现上面的接口,如:

def foo() = {
val bar : Bar = new Bar() {
// how to do that ?


 }

}

2 个答案:

答案 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
  }
}