Sonar抱怨扫描仪应始终关闭,对吗?
Scanner scanner = new Scanner("simple string")
此扫描仪未从文件等进行扫描。为什么应将其关闭?
答案 0 :(得分:1)
在Sonar文档中指定,
连接,流,文件和其他实现 Closeable接口或其超级接口AutoCloseable必须是 使用后关闭。
Scanner
确实实现了Closeable
接口。因此,应将其关闭。
请参阅此link。
答案 1 :(得分:1)
通过调用new Scanner("string")
会创建一个StringReader
来创建字符流。所以您必须关闭它。
public Scanner(String source) {
this(new StringReader(source), WHITESPACE_PATTERN);
}
答案 2 :(得分:0)
不需要关闭扫描仪,但最好这样做,以释放分配给扫描仪的资源,以优化代码并使其更快,更高效。