This 关键字与 scala 和匿名函数/类一起使用
在 Java 中,我可以引用特定类的外部实例: 抱歉,我就是这个意思。
object obj extends SomeOtherClass {
def myMethodOfSomeInstance = {
val uiThread = new SomeClass {
def run: Unit = {
chooser.showOpenDialog(SomeOtherClass.this)
}
}
}
... 这段代码无法编译,但是在这一行,我想引用父实例?我该怎么做?
选择器.showOpenDialog(SomeOtherClass.this)
In Java, I could reference the outer instance of a particular class:
Sorry, I meant this.
object obj extends SomeOtherClass {
def myMethodOfSomeInstance = {
val uiThread = new SomeClass {
def run: Unit = {
chooser.showOpenDialog(SomeOtherClass.this)
}
}
}
...
This code does not compile, but on this line, I want to reference the parent instance? How do I do that?
chooser.showOpenDialog(SomeOtherClass.this)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在您可以引用的封闭对象中使用自引用:
编辑:顺便说一下,您的对象声明必须是
object obj extends SomeOtherClass
才能成为有效的 Scala 代码。然后,您还可以使用 obj.this 引用封闭对象。You can use a self reference in the enclosing object that you can refer to:
EDIT: By the way your declaration of the object would have to be
object obj extends SomeOtherClass
for being valid scala code. You could then also refer to the enclosing object withobj.this
.