声纳抱怨扫描仪应该一直关闭,是不是?
Scanner scanner = new Scanner("simple string")
此扫描仪不扫描文件等。为什么要关闭它?
通过调用new Scanner("string")
,它创建了一个StringReader
,它创建了一个字符流。所以你必须关闭它。
public Scanner(String source) {
this(new StringReader(source), WHITESPACE_PATTERN);
}
如Sonar doc中所述,
实现Closeable接口或其超级接口AutoCloseable的连接,流,文件和其他类需要在使用后关闭。
并且Scanner
确实实现了Closeable
接口。因此它应该被关闭。
请参阅此link。
无需关闭扫描程序,但最好是为了释放为扫描程序分配的资源以优化代码并使其更快更有效。