当前位置: 首页 > 知识库问答 >
问题:

String Scanner java中的资源泄漏

法池暝
2023-03-14
new Scanner("somthing to split")
            .useDelimiter(Pattern.compile("[ ,\n]"))
            .forEachRemaining(System.out::println);

给出资源泄漏:'<未分配的可关闭值>'在此位置未关闭

共有1个答案

鲜于阳成
2023-03-14

VSCode不关心您的扫描器绑定到什么资源。它不检查您是否真的应该关闭它。

通过添加@suppresswarnings(“resource”)取消警告,或者使用try-with-resources语法正确关闭扫描程序:

try (Scanner scanner = new Scanner(...)) {
    ...
} // auto-closed here

并不是所有的警告都是正确的,也有假阳性,在这种情况下压制警告是完全可以的。不过,您可能需要添加一个注释来解释原因。

 类似资料:
  • 在中,我收到了一个警告,我不明白这一点。 这是理解问题还是java/eclipse问题?

  • Eclipse Java警告:资源泄漏:“Unassigned Closeable Value”从不关闭 漏在哪里?

  • 大家晚上好。我是一个使用Java编程的完全初学者,我正在学习“扫描仪”,但是当我在Eclipse中键入这个基本代码时,我收到一条消息说“资源泄漏:‘扫描仪’永远不会关闭。 我做错了什么?

  • 我试图理解不对任何流调用close()会如何影响系统的性能和功能。为了做到这一点,我创建了下面的测试类。

  • 我正在使用Eclipse,并执行下面的函数,碰巧我打开了一个扫描器,然后,最后我关闭了它,但Eclipse一直说它没有关闭“资源泄漏:'Scanner'没有关闭”。我可以用try with resources来完成,警告消失了,但我想知道为什么我在这里尝试的方式不起作用