Это ключевое слово с scala и анонимными функциями / классами - PullRequest
2 голосов
/ 28 марта 2011

В Java я мог бы ссылаться на внешний экземпляр определенного класса: Извините, я имел в виду это.

object obj extends SomeOtherClass {
def myMethodOfSomeInstance = {
val uiThread = new SomeClass {
          def run: Unit = {
            chooser.showOpenDialog(SomeOtherClass.this)            
          }
        }
}

... Этот код не компилируется, но в этой строке я хочу сослаться на родительский экземпляр? Как мне это сделать?

chooser.showOpenDialog (SomeOtherClass.this)

1 Ответ

4 голосов
/ 28 марта 2011

Вы можете использовать собственную ссылку во вложенном объекте, к которой вы можете обратиться:

object SomeObject { outer =>
  def myMethodOfSomeInstance = {
    val uiThread = new SomeClass {
      def run: Unit = {
        chooser.showOpenDialog(outer)
      }
    }
  }
}

РЕДАКТИРОВАТЬ: Кстати, ваше объявление объекта должно быть object obj extends SomeOtherClass за действительный скала код.Затем вы можете также ссылаться на окружающий объект с помощью obj.this.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...