首页 > 解决方案 > 为什么会显示错误:“资源泄漏:'键盘'从未关闭”?

问题描述

我最近在一台新计算机上安装了 Eclipse,当我尝试编写这段代码时,它给了我这个错误。我发誓我写过这种类型的

Scanner keyboard = new Scanner(System.in) 

很多次在我的旧电脑上,直到现在才出现这个错误。

import java.util.Scanner;
public class W1M1 {

public static void main(String[] args) {
    System.out.println("Hellow World");
    Scanner keyboard = new Scanner(System.in); //'keyboard' word shows this error
    System.out.println("Please enter your name: ");
    String userInput = keyboard.nextLine();
    System.out.println("Hello there, " + userInput + ".");
}

}

标签: javaeclipseinputjava.util.scanner

解决方案


该类Scanner实现了Closable接口——即,它打开了一个资源,并且您应该close()自己调用该方法,因此,一般来说,Eclipse 会做正确的事情并在此处产生警告。

但是,在这种特定情况下,keyboardScannerSystem.in- 标准输入描述符。您永远不应该自己关闭它,在这种情况下应该只取消 Eclipse 的警告。


推荐阅读