我不明白这个错误:线程中的异常"main" java.lang.NullPointerException。



我一直在阅读这个错误的可能解决方案,但我不太理解它,这里是代码和它给我的输出:

import java.io.Console;
public class Ejercicio3 {
public static void main(String[] args) {
Console c = System.console();
System.out.println("¿Cuántas puertas quieres que tenga el coche?"); 
String numPuertas = c.readLine(); /* Here is the error */
int numNum = Integer.parseInt(numPuertas);
if (numNum == 3) {
System.out.println("Es un coche deportivo");
} 
else if (numNum == 5) {
System.out.println("Es un coche familiar");
}

else {
System.out.println("¿Seguro que el coche tiene " + numNum + " puertas?");
}

}
}

输出
¿Cuántas puertas quieres que tenga el coche?
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.io.Console.readLine()" because "<local1>" is null
at Ejercicio3.main(Ejercicio3.java:13)

但是它不让我回答这个问题

使用Console cons = System.console()返回的实例调用该方法前,请先检查cons实例是否为null,然后再执行其他进程。

如果你的Java程序想要与Windows或Linux/unix下的Terminal的cmd交互,你可以使用这个Java Console类来为你做这件事。从这样的交互式命令行启动应用程序将返回一个可用的控制台实例。

Java.io.Console只能在标准输入和输出流没有重定向的原始控制台中使用,它在Eclipse/Idea或其他IDE控制台中不可用。

相关内容

最新更新