WeakReference と「Strong Reference」のリストが必要な状況を想定します。しかし、Java には StrongReference クラスがありません。私の解決策は
オブジェクトのリストを保持
List<? extends Object> list =new ArrayList();
リストから要素を取得するときはいつでも、次を確認してください。
if(list.get(i) instanceof WeakReference){
MyClass myObject = ((MyClass)((WeakReference) list.get(i)).get());
if(myObject != null){
myObject.doSomething();
}
}else{
MyClass myObject = ((MyClass)list.get(i));
myObject.doSomething();
}
強い参照と弱い参照を 1 つのコレクションにまとめるより良い解決策はありますか?