本帖最后由 xiaoge090702113 于 2012-12-20 19:02:54 编辑

解决方案 »

  1.   

    Helper 类 temp[i]你输出看下他的size 和每个下标对象是否被实例化
      

  2.   

            Helper tt = new Helper();
                   try{
                       tt.xuanTi();
                   }catch(Exception e){
                   e.printStackTrace();
                   }//声明temp[]               this.temp=tt.temp;//楼主加上试试。               for(int t=0;t<6;t++){
                   int w=intRet[t];
                   //if(temp[w]!=null)
                   System.out.println(temp[w]);//出现空指针异常的数组!!!
           }
      

  3.   

    或者:(没有验证,供楼主参考)。
            //Helper tt = new Helper();
                   try{
                       xuanTi();//直接执行这个方法。自然就是本对象的temp.
                   }catch(Exception e){
                   e.printStackTrace();
                   }//声明temp[]
                   
                   for(int t=0;t<6;t++){
                   int w=intRet[t];
                   //if(temp[w]!=null)
                   System.out.println(temp[w]);//出现空指针异常的数组!!!
           }
      

  4.   

    楼上正解,楼主【tt.xuanTi();】调用的是tt的对象,所以this.temp还是没有初始化,这样肯定temp就会空指针。
    可以直接把【tt.xuanTi()】改成【this.xuanTi()】调用就行!相当于自己调用自己,temp就能初始化了。
      

  5.   

    高手!解决了我的问题,请教一下,能不能说的再详细些,每个对象调用相同方法后,初始化的数组时属于那个对象?this.temp,this是指什么,高手求教!
      

  6.   

    this是一个指针,指向该对象。和直接调用temp是一样的,默认就是this。
    除了static数据是属于类,所有实例化对象共享以外;其他类属性都是对应每个实例化对象的。所以你的代码里面,temp分别属于this和tt,所以不能共享。