rjc
rjc

Reputation: 2915

How to implement Java interface anonymously in scala?

Suppose I have a Java inteface

public interface Bar {

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

I want to implement above interface anonymously in scala within a function body like:

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


 }

}

Upvotes: 13

Views: 4974

Answers (2)

Kevin Wright
Kevin Wright

Reputation: 49705

If I had to, I'd write it as:

val bar = new Bar {
  def baz(st: String): Unit = {
    // method impl
  }

  def jaz(): Unit = {
    // method impl
  }
}

Though my preference is to avoid side-effecting methods as much as possible, they don't play very nicely with functional programming

Upvotes: 13

missingfaktor
missingfaktor

Reputation: 92036

val bar = new Bar {
  def baz(st: String) {
    // method impl
  }

  def jaz() {
    // method impl
  }
}

Upvotes: 6

Related Questions