Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 警告:资源泄漏:';键盘';这家店从不关门_Java - Fatal编程技术网

Java 警告:资源泄漏:';键盘';这家店从不关门

Java 警告:资源泄漏:';键盘';这家店从不关门,java,Java,[第9行]警告:资源泄漏:“键盘”从未关闭 这就是我收到的警告。我不认为消息来源真的被泄露了。 但是我不知道如何把它取下来,这样我就可以编译代码了。你需要关闭键盘扫描仪。 keyboard.close()忽略该警告是安全的,我永远不会close()一个正在包装全局系统的扫描仪。在中,您使用以下命令打开了键盘: import java.util.Scanner; public class LetterGrade { public static void main(String[] args)

[第9行]警告:资源泄漏:“键盘”从未关闭

这就是我收到的警告。我不认为消息来源真的被泄露了。
但是我不知道如何把它取下来,这样我就可以编译代码了。你需要关闭键盘扫描仪。
keyboard.close()

忽略该警告是安全的,我永远不会
close()
一个正在包装全局
系统的扫描仪。在

中,您使用以下命令打开了键盘:

import java.util.Scanner;

public class LetterGrade {
  public static void main(String[] args) {
    char grade;
    String input;
    Scanner keyboard = new Scanner(System.in);

    System.out.println("Enter grade awarded");

    input = keyboard.nextLine();

    grade = input.charAt(0);

    switch (grade) {
      case 'A':
        System.out.println("Grade was between 89.5 and 100");
        break;  
      case 'B':
        System.out.println("Grade was between 79.5 and 89.49"); 
        break;  
      case 'C':
        System.out.println("Grade was between 69.5 and 79.49");
        break; 
      case 'D':
        System.out.println("Grade was between 59.5 and 69.49");
        break;
      case 'F':
        System.out.println("Grade was below 59.5");
        break;
      default:
        System.out.println("Invalid grade inputted");
        break;
    }
  }
}

当不再需要键盘输入时,需要使用
keyboard.close()
方法将其关闭。

在哪里添加?我在代码末尾添加了它,得到了一个新错误。当您不再使用它时,即在switch语句之后。@AjayP:将它放在
输入
赋值之后或
开关
块之后。请确认SCOPE的有用性。出于好奇,为什么您永远不会关闭它?@Abbath因为一旦关闭了
System.in
,您需要重新启动程序才能再次打开它。如果在
exit()
之前立即
close()
,这没关系,但如果将其提取到一个方法中,当程序神秘地停止接受输入时,可能会给您带来各种痛苦。
Scanner keyboard = new Scanner(System.in);