【发布时间】:2015-12-09 09:19:31
【问题描述】:
我使用ByteArrayOutputStream 来填充具有不同字节长度的不同值的字节数组。我使用方法write(byte[] b)。由于此方法继承自 OutputStream,因此它可能会抛出 IOException。在ByteArrayOutputStream 中有一个方法write(byte[] b, int off, int len) 不会抛出IOException,所以我扩展ByteArrayOutputStream 并覆盖write(byte[] b) 方法,它现在也不会抛出IOException:
private class ByteArrayOutputStreamNoException extends ByteArrayOutputStream
{
public ByteArrayOutputStreamNoException(int size)
{
super(size);
}
public ByteArrayOutputStreamNoException()
{
super();
}
@Override
public void write(byte[] data)
{
write(data, 0, data.length);
}
}
使用扩展类,我现在在 Eclipse 4.5.1 中收到资源泄漏警告,因为我没有关闭代码中的流。 ByteArrayOutputStream 的情况并非如此。我的扩展类有什么问题,或者我必须添加什么来删除警告?我知道我可以将 SuppressWarnings 注释添加到流的每个实例化,但我更喜欢以某种方式更改扩展类以删除警告。
【问题讨论】:
-
这是哪个版本的java?我复制了它,它没有显示 jdk 1.8 的任何警告
-
我也使用 jdk 1.8.0_66。那么它可能是日食?
标签: java eclipse memory-leaks