是否应关闭带有字符串输入的Java扫描程序?

是否应关闭带有字符串输入的Java扫描程序?,java,java.util.scanner,sonar-runner,Java,Java.util.scanner,Sonar Runner,声纳抱怨说扫描仪应该一直关闭,对吗 Scanner scanner = new Scanner("simple string") 此扫描仪不是从文件等进行扫描。为什么要关闭它?如Sonar doc中所述 连接、流、文件和其他实现 需要设置可关闭接口或其超级接口AutoCloseable 使用后关闭 而且扫描仪实现了可关闭的接口。因此,它应该关闭 参考此项。通过调用新扫描仪(“字符串”)它将创建一个创建字符流的。所以你必须关闭它 无需关闭扫描仪,但最好这样做,以释放分配给扫描仪的资源,从而优化

声纳抱怨说扫描仪应该一直关闭,对吗

Scanner scanner = new Scanner("simple string")

此扫描仪不是从文件等进行扫描。为什么要关闭它?

如Sonar doc中所述

连接、流、文件和其他实现 需要设置可关闭接口或其超级接口AutoCloseable 使用后关闭

而且
扫描仪
实现了
可关闭的
接口。因此,它应该关闭


参考此项。

通过调用
新扫描仪(“字符串”)
它将创建一个创建字符流的。所以你必须关闭它


无需关闭扫描仪,但最好这样做,以释放分配给扫描仪的资源,从而优化代码并使其更快、更高效。

但是否需要关闭扫描仪?
StringReader
似乎不包含任何需要释放的资源。查看源代码,
close()
方法只是将它对
字符串的引用设置为
null
@Slaw,这可能不是Sonar抱怨的原因,因为它实现了可关闭的接口。对不起,我真的很困惑,是否需要关闭,或者我将其标记为假阳性而不关闭?@user9449907关闭它以保持一致性。
public Scanner(String source) {
    this(new StringReader(source), WHITESPACE_PATTERN);
}