当其他线程不再引用可关闭对象时,我想正确关闭它。
我写了一些小测试,但是在对象入队后,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();
}
提前致谢。任何帮助将不胜感激。