我想问一下内部类在外部类中使用自己的引用的安全性。
以下是例子:
public class OuterClass {
InnerClass Foo1;
InnerClass Foo2;
static OuterClass outer;
public static void main(String[] args) {
outer = new OuterClass();
outer.test();
}
public void test() {
Foo1 = new InnerClass();
Foo2 = new InnerClass();
Foo1.printfoo();
Foo2.printfoo();
}
private class InnerClass {
String foo;
public InnerClass() {
}
private void printfoo() {
if(OuterClass.this.Foo1.equals(this)){
foo = "foo1";
}
if(OuterClass.this.Foo2.equals(this)) {
foo = "foo2";
}
System.out.println(foo);
}
}
}
所以,这是我的问题,这样安全吗?和/或有更好的方法吗?
这里的目标是使用正确的值初始化内部类的字段,以便在外部类中使用它,而外部类不需要向内部类提供任何信息。