Javaでインナークラスからアウタークラスのインスタンスを取得する
もうなんども忘れてしまってその都度調べるので(しかも一般的な用語だし、関係もやや分かりにくいので、なかなか適切な検索語が思い浮かばない...)、ここでメモしておこうかな ^_^;。ほとんど使わないから忘れちゃうんですよね。
Java でプログラムをかいているときに、インナークラス(内部クラス)から外のクラスのインスタンスを使いたいときがあります。そういうときは「アウタークラス名.this」で OK です。以下、ありそうな例。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Outer extends JPanel{
public Outer(){
super();
}
private class Inner implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(Outer.this, "Message.");
// ↑ この 1 つめの引数の形
}
}
}