如果WeakReference被垃圾收集,请关闭FileHandle

时间:2013-12-08 15:00:00

标签: java garbage-collection weak-references filehandle randomaccessfile

我有一类以下结构:

public class RandomMatrixIndex implements IIndex {

    private final HashMap<Long, Long> index;
    private RandomAccessFile rand;

    // constructor and methods.
}

在构造函数中打开RandomAccessFile rand。 在另一个类中,我创建了一个hashmap:

 private final HashMap<String, WeakHashMap<String, IIndex>> _MATRIX_MAP;
 _MATRIX_MAP.put(....);

映射包含到IIndex接口的映射,该接口由上面的类实现。如果我将RandomMatrixIndex放在地图中,引用可能会被垃圾收集,我无法正确关闭RandomAccessFile。

现在我的问题。如果对WeakHashMap的引用丢失,我如何关闭RandomAccessFile?我必须在RandomMatrixIndex构造函数中包含终结器吗?或者是文件句柄自动关闭。 (如果编码风格很差,请原谅)

Thanx很多!

0 个答案:

没有答案