【问题标题】:Java - Warn about resource leakJava - 警告资源泄漏
【发布时间】:2016-01-03 21:45:44
【问题描述】:

我将如何警告添加到我的代码中的人必须在使用结束时调用方法以阻止资源泄漏。 BufferedReader 就是一个例子,当使用它时,它会通知您必须调用 reader.close()。我将如何在我自己的代码中做到这一点。必须调用 object.close()。

BufferedReader br = new BufferedReader(..);

br.readLine();

br 将收到以下警告 - 资源泄漏:“br”永远不会关闭

这是我想重复的。

有可能吗?

谢谢

【问题讨论】:

  • 所以人们知道我知道 br.close() 必须被调用。我希望能够用我自己的类重复此操作,以便必须调用 myclass.close() 否则将给出资源警告。
  • 这个 Eclipse(或您的 IDE)是否有警告?
  • 哦...这可能是对的。

标签: java memory-leaks


【解决方案1】:

不确定编译器警告 - 但自己实现 Closeable 可能是个好主意 - 这样你就可以向用户发出信号“这里有一些东西要关闭”并且允许尝试使用- 自己处理资源。

查看eclipse compiler settings

【讨论】:

  • 好的。我假设编译器警告是为这些特定方法创建的,因此是不可重复的。我将实现 Closeable 并保留它。谢谢
  • 检查我添加的链接 - 并可能对所有有用的答案进行投票... :-)
  • 我这样做了,它奏效了!谢谢。我从来不知道 eclipse 编译器文档。如果出现其他类似问题,我一定会参考。
【解决方案2】:

参考Eclipse documentation

实现接口 java.io.Closeable(自 JDK 1.5 起)和 java.lang.AutoCloseable(自 JDK 1.7 起)的类被认为代表外部资源,当它们不再被关闭时,应使用方法 close() 关闭它们需要。

所以,让您的自定义类实现这些接口之一。

【讨论】:

  • 我试过了,同样的警告没有重复,但我会进一步观察。谢谢
猜你喜欢
  • 2016-07-24
  • 2012-12-07
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 2016-09-23
  • 1970-01-01
  • 2019-05-25
  • 2013-01-31
相关资源
最近更新 更多