我先创建了一个类 大概如下:
class LinkQueue {                    //一个队列
   private Link first;               // link是一个节点类
   private Link last ;               // ref to last item   public boolean isEmpty()          // true if no links
      {  }
   public void insertLast(int dd)    // insert at end of list
      {  }
   public int deleteFirst()          // delete first link
      {  }
}
然后在另一个类中 我这样用这个类建了一个数组private static LinkQueue[] arr;
arr=new LinkQueue[10];接着有这么一条语句:  arr[ ptr ].insertLast( theArray[j] );  // ptr是一个计算的数组下标 theArray[j]是一个int值 系统编译都通过了 就是运行的时候在上面那个语句的地方出现了一个NullPointerException错误
  我试过把那两个数都替换成一个常数值仍然出现原错误 这是怎么回事啊!1

解决方案 »

  1.   

    你是创建了LinkQueue[],但是arr中的值都是null啊
      

  2.   

    private static LinkQueue[] arr;
    arr=new LinkQueue[10];
    解决办法.
    arr=new LinkQueue[10];前面再定义一个linkQueue的句柄,这个句柄并不一定要用到.
      

  3.   

    LinkQueue b = new LinkQueue()
      

  4.   

    那我还要加一些什么样的语句才能使他们的值不为Null?
      

  5.   

    这样说吧,你定义了一个LinkQueue类型的数组arr,这个数组对象已经不是Null了,但是这个数组里面的单个LinkQueue类型的对象,也就是arr[0],arr[1...arr[9]他们都还没有生成实例,因此都是空的即Null,所以当你调用arr[ ptr ].insertLast()这个方法时就出错了~
    要想不出错,就要在使用arr[ptr]之前都实例化
    for(int i=0;i<10;i++){
       arr[i]=new LinkQueue();
    }
    这样就不出错了
      

  6.   

    private static LinkQueue[] arr=new LinkQueue[10];
    不要把private static LinkQueue[] arr;和arr=new LinkQueue[10]分开;