Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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_Resources_Static Analysis_Stream - Fatal编程技术网

Java 是否有用于返回包装流/连接的强化注释?

Java 是否有用于返回包装流/连接的强化注释?,java,resources,static-analysis,stream,Java,Resources,Static Analysis,Stream,我们有一个Java方法,它访问流、包装流并将其返回给调用方。(数据库连接的情况与此类似。)Fortify(静态代码分析器)将此报告为“未释放的资源”漏洞,因为我们没有关闭流。在我们的例子中,由调用方来释放资源 是否有一种方法可以编写此文件或对其进行注释,以便Fortify不会将此方法标记为易受攻击,而是标记该方法的调用方(如果它不释放它)?调用方如何通过包装器释放资源?好问题。在一段代码中,是的。在另一种情况下,不,他们应该使用返回流的标准“close”方法。它是否将这两种情况都标记为存在此问题

我们有一个Java方法,它访问流、包装流并将其返回给调用方。(数据库连接的情况与此类似。)Fortify(静态代码分析器)将此报告为“未释放的资源”漏洞,因为我们没有关闭流。在我们的例子中,由调用方来释放资源


是否有一种方法可以编写此文件或对其进行注释,以便Fortify不会将此方法标记为易受攻击,而是标记该方法的调用方(如果它不释放它)?

调用方如何通过包装器释放资源?好问题。在一段代码中,是的。在另一种情况下,不,他们应该使用返回流的标准“close”方法。它是否将这两种情况都标记为存在此问题?在包装器提供关闭选项的情况下,它是否实现了
AutoClosable
。在第二种情况下,包装器类是一个迭代器。它实现了一个接口,该接口扩展了AutoCloseable和迭代器。是额外的界面层造成了混乱吗?我会被诅咒的,你说得对。这一定是一个相对较新的功能。那时候肯定没那么聪明。我学到了一些新东西。谢谢