我再书本上抄写了一段代码,运行后在Eclipse里面提示这个错误:
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at javax.swing.JPopupMenu.add(Unknown Source)
at javax.swing.JMenu.add(Unknown Source)
at SnakeFrame.init(SnakeGame.java:345)
at SnakeFrame.(SnakeGame.java:257)
at SnakeGame.main(SnakeGame.java:21)
求大家帮帮忙,小弟感激不尽。
典型的空指针异常,根据异常提示:at SnakeFrame.init(SnakeGame.java:345)可知是SnakeGame.java的345行出现问题,出现错误,要学会看错误提示,根据错误提示找bug是最基本的编程技巧。
NullPointerException 空指针异常,
at SnakeFrame.init(SnakeGame.java:345) 你的SnakeGame类的第345行出现问题
at SnakeGame.main(SnakeGame.java:21) 在你的main方法里面调用了SnakeGame里面的某个方法之类的。然后自己去找到那个方法再仔细看看吧,
既然是从书上抄的,那就有两种情况,1.书上给的不是完整代码;2.你写的时候没有注意,可能有的地方写得不同。自己仔细找找吧
什么空指针错误的就不说了,是SnakeGame.java:21第21行有个错误,自己对着书上相应的地方看看有什么不同
空指针异常,在SnakeGame类的345行中。
空指针异常指的是JAVA要求使用所有变量或对象的方法时,这个对象不能为空。
举个例子吧
String useName;
int nameLength=useName.length();
//这样就会报错,空指针异常。
因为你声明的useName是没有值的,为null。所以用的时候就会报错。
改为:
String useName="";
int nameLength=useName.length();
//这样就对了
对象也是一样,我有个AccountUser类,其中有个userName属性。
AccountUser accountUser;
String newName=accountUser.userName;
//错误,因为accountUser对象为空,
改为:
AccountUser accountUser=new AccountUser();
String newName=accountUser.userName;
//这样就正确了
其实就是你没有赋值或者没有初始化的原因