Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在代码中找到所有未关闭的实例和对象?_Java_Try With Resources_Autocloseable - Fatal编程技术网

Java 如何在代码中找到所有未关闭的实例和对象?

Java 如何在代码中找到所有未关闭的实例和对象?,java,try-with-resources,autocloseable,Java,Try With Resources,Autocloseable,我的团队有大量的代码。最近我发现了一些未正确关闭的对象。 如何查找未关闭或不在try with resources块中的所有实例? 一些对象,例如语句,结果集,甚至没有显示它的警告消息 有显示所有这些事件的扩展工具吗? 我正在使用Eclipse。静态代码分析工具(如)应该找到所有这些事件并向您发出警告。 还包括一些相关规则(设置>编辑器>检查>Java>资源管理问题,或者只是在检查中按“关闭”进行过滤) 我看到您正在使用Eclipse。您可能可以安装,其中包括一些检查资源是否正确关闭的规则。AF

我的团队有大量的代码。最近我发现了一些未正确关闭的对象。
如何查找未关闭或不在
try with resources
块中的所有实例?
一些对象,例如
语句
结果集
,甚至没有显示它的警告消息

有显示所有这些事件的扩展工具吗?

我正在使用Eclipse。

静态代码分析工具(如)应该找到所有这些事件并向您发出警告。
还包括一些相关规则(设置>编辑器>检查>Java>资源管理问题,或者只是在检查中按“关闭”进行过滤)


我看到您正在使用Eclipse。您可能可以安装,其中包括一些检查资源是否正确关闭的规则。

AFAIK try with resources承诺关闭资源,因此不应该发生这种情况。但是,对于老式的
try
-
catch
块,您也有这些块吗?@Tim TWR只保证关闭“命名”资源。例如,
try(BufferedReader r=new BufferedReader(new InputStreamReader(new FileInputStream(“…”)){}
,只有
BufferedReader
保证关闭。如果BR构建失败,则FIS和ISR可能不会关闭。因此,如果我理解正确,则任何资源块都可能出现问题。IDEA中可能存在的重复。作为可能的解决方案之一:显示
可关闭的
接口的层次结构(默认-ctrl+H)并从项目的层次结构中查找每个类的用法(alt+F7)