Как объект передает себя в качестве параметра? - PullRequest
4 голосов
/ 23 мая 2011

У меня есть JFrame, который является основным классом программы. Я хочу передать его самому себе двум другим классам, один из которых обновит некоторые метки статистикой, а другой будет проверять множество полей.

Я сделал геттеры для этих полей, но как мне сделать, чтобы JFrame передал себя этим классам, чтобы они могли выполнять свою работу?

РЕДАКТИРОВАТЬ: Моя ошибка, моя вина. Первое, что я сделал, это метод this. Да, this решает мою проблему, но он не осознавал, что я совершил ошибку.

Я делал это: new Statistics().execute(this);
где это правильно: new Statistics(this).execute();

Только со всеми ответами, говорящими одно и то же, я понял, что делал глупости. Спасибо всем.

Ответы [ 4 ]

15 голосов
/ 23 мая 2011

Просто передайте ссылку на this

public class Other {

   public void doSomething(JFrame jFrame) {
      ...
   }
} 

public class MyFrame extends JFrame {

   Other other = new Other();

   public void method() {
      other.doSomething(this);
   }

}
6 голосов
/ 23 мая 2011

Псевдопеременная this всегда указывает на текущий объект в методе экземпляра. Просто передайте this в качестве аргумента, где вы хотите, чтобы ссылка шла.

3 голосов
/ 23 мая 2011

Вы пытались использовать this?

Например:

other.doSomething(this)
3 голосов
/ 23 мая 2011

Вы можете использовать this для передачи себя в метод.

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