このインスタンスが作成されたクラスのインスタンスを取得したいのですが、可能ですか?
注:クラスはネストされていません。
class Frame {
protected Panel p1;
private String name;
public Frame(String name) {
this.name=name;
p1=new Panel();
}
public String getName() {
return name;
}
}
..
class Panel {
public Panel() {
System.out.println("I was made in: "+Frame.this.getName());
// but you can't do this
}
}
..
public void main(String[] args) {
Frame f1=new Frame("first"); // should print: first
Frame f2=new Frame("second"); // should print: second
}
注2:私はこのアプローチを認識しています:
class Frame {
protected Panel p1;
private String name;
public Frame(String name) {
this.name=name;
p1=new Panel();
}
public String getName() {
return name;
}
}
..
class Panel {
private Frame owner;
public Panel(Frame owner) {
this.owner=owner; // DECLARING OWNER
System.out.println("I was made in: "+owner.getName());
}
}
..
public void main(String[] args) {
Frame f1=new Frame("first"); // should print: first
Frame f2=new Frame("second"); // should print: second
}
...しかし、これは私を喜ばせません。可能であれば、何とか直接アクセスしたいです。