如何在scala中实现嵌套的java接口

时间:2015-04-21 15:44:35

标签: java scala

说我已经定义了以下旧版java:

abstract class A {

  abstract I foo();

  public interface I
  {
    int bar();
  }
}

我想在scala中实现这一点,如下所示:

class MyA extends A {

  def foo() = new I {

    def bar = 3

  }
}

scala不会使用错误编译

  

未找到:输入I

如何在scala代码中引用java接口?

2 个答案:

答案 0 :(得分:2)

通过scala-colored镜头查看你的java代码,你会看到

  • 使用抽象方法A
  • 的班级foo
  • 其中包含单个界面的对象AA.I

由于随播广告的成员are not auto-imported inside the class,您需要先使用A.I或先将其导入:

def foo() = new A.I { ... }

// or with an import
import A.I
def foo() = new I { ... }

答案 1 :(得分:1)

此代码对我有用:

class MyA extends A {
  def foo() = new A.I {
    def bar = 3
  }
}