我似乎无法从内部类引用中获取外部类成员:
class Outer(st: Int)
{
val valOut = st
def f = 4
class Inner { val x = 5 }
}
object myObj {
val myOut = new Outer(8)
val myIn = new myOut.Inner
val myVal: Int = myIn.valOut//value f is not a member of ... myOut.Inner
val x = myIn.f//value valOut is not a member of ... myOut.Inner
}
我已经在包中尝试过这个,但在 eclipse 工作表中都不起作用。我在 Eclipse 3.7.2 中使用 Scala 2.10.0RC1 和 Scala 插件 2.1.0M2
最佳答案
我不知道你为什么期望它能编译。毕竟,Inner
没有这些成员,只有它的封闭类才有。你可以通过这种方式实现你想要的:
class Outer(st: Int) {
val valOut = st
def f = 4
class Inner {
val outer = Outer.this
val x = 5
}
}
object myObj {
val myOut = new Outer(8)
val myIn = new myOut.Inner
val myVal: Int = myIn.outer.valOut
val x = myIn.outer.f
}
关于Scala:无法从内部类引用中获取外部类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13047083/