我在Java程序中使用Scanner并且Code正常运行。 但是,每当我使用“.useLocale(Locale.US)”时,我会在IDE(Eclipse Mars)中收到警告。 代码段:
Scanner factor1Input = new Scanner(System.in).useLocale(Locale.US);
double factor1 = factor1Input.nextDouble();
factor1Input.close();
代码可以编译,执行和工作,但是,我在IDE中收到以下警告:
警告:
资源泄漏:<'未分配的可关闭值'>永远不会关闭
所有不使用“useLocale”的扫描程序都会在没有任何警告的情况下关闭,IDE和编译器也不会抱怨它们。
致以最诚挚的问候,并提前感谢您,
CONI
PS:由于所需的声誉点而无法添加的其他标记建议:“scanner”,“uselocale”
答案 0 :(得分:0)
您可以使用try-with-resources或在finally块中关闭扫描仪。
try (Scanner scanner = new Scanner(System.in); //
Scanner factor1Input = scanner.useLocale(Locale.US)) {
double factor1 = factor1Input.nextDouble();
// ...
}
Scanner scanner=null;
Scanner factor1Input=null;
try {
scanner = new Scanner(System.in);
factor1Input = scanner.useLocale(Locale.US);
double factor1 = factor1Input.nextDouble();
// ...
} finally {
if (factor1Input != null) {
factor1Input.close();
}
if (scanner != null) {
scanner.close();
}
}
try (@SuppressWarnings("resource")
Scanner factor1Input = new Scanner(System.in).useLocale(Locale.US)) {
double factor1 = factor1Input.nextDouble();
// ...
}