简单的方法是在外部类体中指定this
声明,以定义每个类的唯一名称。但是我想在不修改外部类的情况下编写访问权限。
代码示例:
trait Test {
def z = new Test {
val a = 1
def y = new Test {
val a = false
def x = new Test {
val b = 2 * a
}
}
}
}
我在定义outer.outer.a
val b
而不是外部。
如何指定匿名类的this
?如果是Named
,我可以写Named.this
,但是匿名类没有名字。
答案 0 :(得分:0)
这可以通过self types:
来实现trait Test { greatGrandparent =>
def z = new Test { grandparent =>
val a = 1
def y = new Test { parent =>
val a = false
def x = new Test {
val b = 2 * grandparent.a
}
}
}
}