首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

哪位高手能帮小弟我看下错在哪里?代码 已贴出

2013-06-25 
谁能帮我看下错在哪里?代码 已贴出1.class RouteState package rungamepublic class RouteState {public

谁能帮我看下错在哪里?代码 已贴出
1.class RouteState 


package rungame;


public class RouteState 
{
        public int positionX=0;
        public int positionY=0;
        public void set(int x,int y){
               positionX = x;
               positionY = y;
}
public int getX(){
return positionX;
}
public int getY(){
return positionY;
}

}

2.class PlayerRoute :

package rungame;

import java.util.Vector;

public class PlayerRoute {

public static PlayerRoute instance = null;
//private RouteState rs = null;
private Vector<RouteState> playerroutestate = null;

private PlayerRoute(){

if(playerroutestate==null){
playerroutestate = new Vector<RouteState>();
}
}
 

public static PlayerRoute getInstance(){
if(instance ==null){
instance = new PlayerRoute();
}
return instance;
}

public void addRoute(RouteState rs){

if(rs!=null){
playerroutestate.addElement(rs);
}//出错行
}
public void delLastRoute(){
playerroutestate.remove(playerroutestate.size());
}
public Vector<RouteState> returnLastRoute(){
delLastRoute();
return playerroutestate;

}

public Vector<RouteState> getPlayerRoute(){
return playerroutestate;
}

}

3.test测算代码

import rungame.PlayerRoute;
import rungame.RouteState;


public class test {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
RouteState rs = new RouteState();
rs.set(2, 1);
//System.out.print(rs.getX()+"\n");
PlayerRoute pr= PlayerRoute.getInstance();
pr.addRoute(rs);//出错行
rs=(RouteState)pr.getPlayerRoute().elementAt(1);
int i =rs.getX();
System.out.print(i);
}

}


显示的错误信息。为什么会是空的?

Exception in thread "main" java.lang.NullPointerException
at rungame.PlayerRoute.addRoute(PlayerRoute.java:25)
at test.main(test.java:16)

[解决办法]
你debug试试,playerroutestate = null吧。。
[解决办法]
    private PlayerRoute(){


     
        if(playerroutestate==null){
            playerroutestate = new Vector<RouteState>();
        }
    }
      
你看你  构造方法内没有为pr 赋值。。所有null了
[解决办法]
貌似是在PlayerRoute类的第8行中的private RouteState rs=null给注释掉了导致第26行中的addRoute方法无法接收参数(RouteState rs)所致;
[解决办法]
应该是17行出错了,即pr.getPlayerRoute()应该是null!
[解决办法]


rs=(RouteState)pr.getPlayerRoute().elementAt(1);

应该是这一行有错,pr中只有一个元素,而你去取下标为1的(也就是第二个元素),它肯定会报错的!

热点排行