用下面的代码:有没有办法让Java Outer Class的实例调用Java Inner Class的所有实例?
public class Outer {
final int foo;
public Outer(int foo) {
this.foo = foo;
}
public Inner createInnerInstance(int bar) {
return new Inner(bar);
}
public int getBarSum() {
// TODO: implement
}
public class Inner {
final int bar;
public Inner(int bar) {
this.bar = bar;
}
public int getBar() {
return bar;
}
public int getFooPlusBar() {
return foo + bar;
}
}
}
我想一个方法添加到Outer
它要求每个Inner
的方法。这样做的
一种方法是Outer
保持Inner
的List
一个实例,这getInnerInstance
追加到。问题在于我不希望列表对内部实例的引用使它们不被垃圾收集。在Java中会有某种形式的弱链接列表吗?
有什么不同的方法吗?
注意:我只查找Inner
s,它们共享Outer
的特定实例。
很确定你需要列出它们 –
这是一个非常糟糕的实现,通过向外部类添加一个全局布尔变量并为每个检查布尔值是否已更改的内部类都有一个线程。您可以添加一个侦听器到这些类中的每一个,并从外部类调用侦听器。 –
@nickzoum我承认,但你说过“我只是想找到一种方法来发信号通知所有的类,而不必为每个实例保存记录。” - 我想指出的不符合听者的方法。然而,由于讨论无助于回答OP的问题(部分原因是基于我的误解),为了避免混淆问题,我将删除其他评论(我将很快删除这些内容,在你有机会阅读之后))。 – Thomas