我一直在阅读这个错误的可能解决方案,但我不太理解它,这里是代码和它给我的输出:
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控制台中不可用。