我定义了一个类 
public class Site { //名称 
public String name; 
//横坐标 
public int hcoor; 
//纵坐标 
public int vcoor; 

然后声明一个数组:Site[] site = new Site[n]; 
这么做有问题吗? 
然后再jsp中可以用length得出数组的长度n 
但我向元素负值怎么就总是得到空呢? 
我是这么负值的: 
site[1].name="xx"; 
site[1].hcoor=11; 
site[1].vcoor=11; 
这么一直负到n,然后在jsp中就总是报这个:java.lang.NullPointerException 
谁能告诉我,哪里出的问题啊

解决方案 »

  1.   

    虽然你new 了一个数组
    但是数组里的元素并没有指向任何对象啊
    必须这样
    site[i]=new Site();
    然后在赋值就行了
      

  2.   

    因为java中 对象的数组中的元素其实都是引用,必须指向一个对象的
      

  3.   

    这个不是基本类型的数组所以要这么做.
    举个例子吧:
    Interger[] a = new Integer[10];
    这个只是一个引用数组,并且知道通过创建新的integer对象,并且把对象赋值给引用,初始化才算结束.
    a[i] = new Interger(1);这样才算初始化成功.
      

  4.   

    一般不用数组做这个,可以考虑VECTOR或者ARRAYLIST
      

  5.   

    Site[]site = new Site[n];
    for(int i=0; i<site.length; i++){
        site[i] = new Site();
    }