在Java中,我可以引用特定类的外部实例: 对不起,我是这个意思。
object obj extends SomeOtherClass {
def myMethodOfSomeInstance = {
val uiThread = new SomeClass {
def run: Unit = {
chooser.showOpenDialog(SomeOtherClass.this)
}
}
}
... 这段代码没有编译,但是在这一行,我想引用父实例?我该怎么做?
chooser.showOpenDialog(SomeOtherClass.this)
答案 0 :(得分:4)
您可以在封闭对象中使用自引用,您可以参考:
object SomeObject { outer =>
def myMethodOfSomeInstance = {
val uiThread = new SomeClass {
def run: Unit = {
chooser.showOpenDialog(outer)
}
}
}
}
编辑:顺便说一下,对象的声明必须是object obj extends SomeOtherClass
才能成为有效的scala代码。然后,您还可以使用obj.this
引用封闭对象。