82

J.ブロックより

... メモリ リークの原因はリスナーです ... コールバックが即座にガベージ コレクションされるようにする最善の方法は、それらへの弱い参照のみを保存することです。たとえば、それらを WeakHashMapにキーとしてのみ保存します。

では、なぜ Java Collections フレームワークに WeakSet がないのでしょうか?

4

2 に答える 2

200

Collections.newSetFromMap

Set<Object> weakHashSet = 
    Collections.newSetFromMap(
        new WeakHashMap<Object, Boolean>()
    );

ドキュメントに見られるように、 a をCollections.newSetFromMap渡して aWeakHashMapを取得しSetます。

于 2010-10-31T11:47:54.427 に答える