他のスレッドから参照されなくなったときに、Closeableオブジェクトを適切に閉じたい。
私はいくつかの小さなテストを書きましたが、オブジェクトがエンキューされた後、getメソッドはnullを返します。つまり、pollメソッドは参照対象のない適切なオブジェクトを返します。
public static void main(String[] args)
{
ReferenceQueue<Closeable> reaped = new ReferenceQueue<Closeable>();
Closeable s = <SOME CLOSEABLE IMPL>;
WeakReference<Closeable> ws = new WeakReference<Closeable>(s, reaped);
s = null;
System.gc();
Closeable ro = (Closeable)reaped.poll().get();
ro.close();
}
前もって感謝します。どんな助けでもありがたいです。