v.o.Inner
以下代码无法编译,因为编译器无法证明Outer.this.Inner
在visit()
. 我看不出如何告诉编译器v.o
必须Outer.this
在编译器时识别它。有任何想法吗?
class Outer {
class Inner {
def visit(v:Visitor) = v.visitInner(this)
}
}
class Visitor(val o:Outer) {
def visitInner(i:o.Inner) = { println("foo") }
}