以下代码会报 空指针异常,高手帮忙看下我就是想把自定义的一个类的对象存到一个ArrayList里面,然后需要的时候读出来把以下所有代码放在一个.java 文件里就可以了,
import java.util.ArrayList;
import java.awt.*;
public class Bullet {
    public static void main(String[] args) 
    {
        Bullet bullet = new Bullet();
       bullet.drawMe();
    }
  private ArrayList<bulletInfo> bulletArray = new  ArrayList<bulletInfo>(); //网上看别人的类似问题
                                   //private ArrayList<bulletInfo> bulletArray =null;会报空指针异常,可是我
                                   //没有这样写 public Bullet(){

int x=1,y=2,z=3;

  bulletArray.add(new bulletInfo(x,y,z));  //是不是这个add出问题??
}

public void drawMe(){


for(int i = 0;i < bulletArray.size();i++)      

{
System.out.println(bulletArray.get(i).getBulletPosition().x);

}
}
}class bulletInfo {

private Point bulletLocate;
private int selfDirection ;

public bulletInfo(int a,int b,int direction){

this.selfDirection = direction;
this.bulletLocate.x = a;
this.bulletLocate.y = b;

}

public Point getBulletPosition(){
return bulletLocate;
}

public int getBulletDirection(){
return selfDirection;
}}

解决方案 »

  1.   

    这个空指针跟ArrayList没关系 是因为Point类的对象没初始化
    import java.util.ArrayList;
    import java.awt.*;public class Bullet {
    public static void main(String[] args) {
    Bullet bullet = new Bullet();
    bullet.drawMe();
    } private ArrayList<bulletInfo> bulletArray = new ArrayList<bulletInfo>(); // 网上看别人的类似问题 // private ArrayList <bulletInfo> bulletArray =null;会报空指针异常,可是我
    // 没有这样写 public Bullet() { int x = 1, y = 2, z = 3; bulletArray.add(new bulletInfo(x, y, z)); // 是不是这个add出问题??
    } public void drawMe() { for (int i = 0; i < bulletArray.size(); i++) {
    System.out.println(bulletArray.get(i).getBulletPosition().x); }
    }
    }class bulletInfo { private Point bulletLocate=new Point();
    private int selfDirection; public bulletInfo(int a, int b, int direction) { this.selfDirection = direction;
    this.bulletLocate.x = a;
    this.bulletLocate.y = b; } public Point getBulletPosition() {
    return bulletLocate;
    } public int getBulletDirection() {
    return selfDirection;
    }}
      

  2.   


    this.bulletLocate.x = a; 
    this.bulletLocate.y = b;
    前面加上:
    this.bulletLocate = new Point();