java – Eclipse 4.2资源泄漏通过单独的close方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Eclipse 4.2资源泄漏通过单独的close方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1669字,纯文字阅读大概需要3分钟。
内容图文
![java – Eclipse 4.2资源泄漏通过单独的close方法](/upload/InfoBanner/zyjiaocheng/792/0eb5a845959a4884add24e03023dc987.jpg)
我正在使用Eclipse 4.2并启用了资源泄漏警告.
在我看来,此代码产生了错误的资源泄漏警告.
public static void test(){
InputStream in = null;
try {
in = new FileInputStream("A");
} catch (IOException e) {
return;
}finally{
close(in);
}
}
public static void close(Closeable closeable) {
if (closeable != null) {
try {
closeable.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
如果我重构代码,并将close方法拉入finally块,一切都很好.
public static void test2(){
InputStream in = null;
try {
in = new FileInputStream("A");
} catch (IOException e) {
return;
}finally{
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace()
}
}
}
}
我可以以某种方式删除这些警告,而不必复制close方法的代码,而不必禁用资源泄漏警告?
我找到了一个错误报告here,用于循环中出现类似的事情,但我的代码中没有循环.
解决方法:
>你应该看到’潜在的资源泄漏……’警告,如果没有,请打开一个错误.
>这里的主要问题是编译器不知道’close(..)’方法的作用.它可能会也可能不会关闭资源. (注意,编译器不执行过程间分析)
>您可以选择忽略“潜在资源泄漏”警告. (‘资源泄漏’警告保证是正确的,但’潜在……’警告不是正确的)
有关资源泄漏分析的更多详细信息,请参见此处 – http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-avoiding_resource_leaks.htm&cp=1_3_9_1
编辑:关于’资源泄漏’与’潜在资源泄漏’的说法
>我们的想法是,所有报告的“资源泄漏”警告都保证是正确的,但可能不是“全部”代码库中的资源泄漏.
>’潜在的资源泄漏’很好……潜在的问题.一些开发人员在知道出现问题但他们不知道在哪里时会发出“潜在……”警告.在这种情况下,潜在的警告有助于缩小搜索范围.其他一些开发人员不时会仔细检查潜在的警告,看看那里是否存在真正的问题.
理想情况下,我们希望编译器为我们提供完整且正确的问题集,但实现这一点存在限制:-)
内容总结
以上是互联网集市为您收集整理的java – Eclipse 4.2资源泄漏通过单独的close方法全部内容,希望文章能够帮你解决java – Eclipse 4.2资源泄漏通过单独的close方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。