Как я могу ссылаться на объект, который создал объект? - PullRequest
3 голосов
/ 21 июня 2010

В Java у меня есть объект, который создает кнопку. Внутри onclicklistener этой кнопки я хочу сослаться на объект, который создал кнопку.

Есть ли какой-нибудь простой способ сделать это?

Ответы [ 2 ]

6 голосов
/ 21 июня 2010

Зависит от того, как вы это структурировали.Как правило, экземпляры не имеют ссылки на экземпляр, который их создал, если вы не передадите их и не сохраните где-нибудь.Однако, если вы делаете:

public class YourClass {
    public void foo() {
        JButton b = new JButton();
        b.addActionListener(new ActionListener() {
            @Override public void actionPerformed(ActionEvent e) {
                // Need reference to YourClass here
            }
        });
    }
}

, тогда вы можете обратиться к внешнему YourClass, используя YourClass.this

1 голос
/ 21 июня 2010

Что-то вроде:

    class CustomButton extends Button
    {
         private Object parent = null;

         public CustomButton(Object parent) {
             super();
             this.parent = parent;
         }
    }

должно сработать.

...