Использование ReferenceQueue и WeakReference

Я хочу правильно закрыть объект 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();
  }

Заранее спасибо. Любая помощь будет оценена.

Ответы на вопрос(1)

Ваш ответ на вопрос