class Bullet
{ public int bu_x;
         public int bu_y;
public int bu_type;
public boolean bu_exist;
Bullet()
{
bu_x = 0;
bu_y =0;
bu_type =0;
bu_exist = false;
}
}
类原形
在构造函数中写
Bullet[] bullet = new Bullet[100];
bullet[0].bu_type = 10;
运行的时候就
java.lang.NullPointerException
哪位朋友帮忙解决一下  谢谢了

解决方案 »

  1.   

    在bullet[0].bu_type = 10;
    前加上:
    bullet[0] = new Bullet() ;
      

  2.   

    java数组的每一个元素都需要new
      

  3.   

    JAVA中对象使用前必须实例化。
    Bullet[] bullet = new Bullet[100];//它只帮你申请了对象数组在内存中空间大小而已,但它里面的对都是NULL,所以你想使用这个数组存放Bullet对象,你必须将每个对象实例化。也就是
    bullet[0] = new Bullet() ;然后你才能操作对象;
    在bullet[0].bu_type = 10;
      

  4.   

    bullet[0] = new Bullet() 
    创建实例对象先
      

  5.   

    Bullet[] bullet = new Bullet[100];//仅向JVM申请了100个Bullet对象所需要的内存空间,并没有实例化对象的产生// 实例化数组
    for(int i=0, len=bullet.length; i<len; i++){
        bullet[i] = new Bullet();
    }// 接下来就可以使用这个数组了.
    bullet[0].bu_type = 10;
    //另:Java普通变量最好不要用下划线作为分隔(仅静态常量用下划线作为分隔)
      

  6.   

    Bullet[] bullet = new Bullet[100];//在您定义一个数组的时候,首先要对数组初始化,也就是数组的总个数进行定义一个取值范围
    bullet[0] = new Bullet();//接着就是要对数组的元素初始化,只有当你为该数组的元素分配了内存地址后才能对它进行操纵!
      

  7.   

    数组是对象,你new一下:Bullet[] bullet = new Bullet[100];
    但是数组里面的元素也是对象,你用之前为什么不去new呢对于数组元素的new,建议到用的时候再去new。当然也可以事先全部new出来,
    可以写个for循环去new
    for( int i = 0; i < bullet.length; ++i )
        buttle[i] = new Bullet() ;或者利用java.util.Arrays的静态方法去填充:
    Arrays.fill( buttle, new Bullet() ) ;