今天是我学习java的第一天:)
我在运行一个非常简单的示例时遇到了问题(不是一个很好的开始)。
这只是一个简单的例子,它要求用户输入并打印出来,但是当我尝试从控制台读取一行时,我得到了一个空指针异常。
我不明白,因为一切似乎都是实例化的。
public static void main(String[] args) {
// TODO code application logic here
Console console = System.console();
String userinput;
userinput= console.readLine("Enter input: ");
/* Creates list for planets */
ArrayList outputlist= new ArrayList();
outputlist.add(userinput); // Adds users input to the list
outputlist.add("an entry"); // Adds a string to the list
System.out.println("\nTwo items: " + outputlist);
}
编辑1
正如许多人指出的那样,当我试图从控制台读取一行时会抛出错误,因为控制台是空的(即使我正在实例化它?)。
问这个问题有点傻,但我如何才能使控制台“不为空”。我以为我是通过使用Console = System.console()来完成的。
我对工作流的期望是使用netbeans编写一个简单的用户输入。按下调试按钮。看到屏幕弹出。输入一些文字。见输出。
编辑2
O.K
经过一番研究,发现你不能在netbeans中使用system.console。我不明白为什么。我只是用扫描仪代替。
现在我不知道接受0-0的答案是什么
发布于 2010-09-18 16:25:12
一定是System.console()
。您不会对会导致空指针异常的对象执行任何其他操作。正如@McDowell所指出的,System.console()
可以返回一个空值
发布于 2010-09-18 16:28:40
Console console = System.console();
String userinput;
userinput= console.readLine("Enter input: ");
不要使用下面的代码;我认为System.console是在.Net平台上使用的
String userinput;
InputStreamReader sr =new InputStreamReader(System.in);
BufferReader br=new BufferReader(sr);
userinput=br.readLine();
发布于 2010-09-18 17:14:33
在终端中运行它( linux中的shell或windows中的cmd )。
在我的例子中,我将您的代码放入一个文件(Test.java)中。构建后,IDE (在我的例子中是eclipse)创建一个bin文件(Test.class)
所以,只需转到这个文件夹并调用:
$ java Test
Enter input: asdasd
Two items: [asdasd, an entry]
而且起作用了!
https://stackoverflow.com/questions/3742399
复制相似问题