Java内部类导入到Scala项目

时间:2011-11-12 10:42:57

标签: java scala

我想将java内部类导入Scala项目。无法编译的代码如下所示:

import pac.Obj
import pac.Obj.Inner.Inner2

object Sample {
    def main(args: Array[String]): Unit = {            
        var o = new Obj()
        Inner2 i2 = o.getInner().addInner2("some text")
    }
}

scala编译器无法识别第二次导入。这是为什么?在Java中,这种构造工作正常。

3 个答案:

答案 0 :(得分:10)

如果Inner类是static,它确实有效。

如果不是,那么你运气不好(但你真的需要吗?)。但您可以将此名称与#分隔符一起使用,如下所示:

var inner = outer.getInner : Outer#Inner

答案 1 :(得分:4)

在任何情况下,

Inner2 i2在Scala中都是非法的,val i2 = o.getInner().addInner2("some text")可以正常使用。

答案 2 :(得分:1)

根据Iulian Dragos,would know

  

确实没有导入Outer#Inner的语法。

link