数组出现空指针异常,实在是找不出为啥为null来啊,求教 本帖最后由 xiaoge090702113 于 2012-12-20 19:02:54 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Helper 类 temp[i]你输出看下他的size 和每个下标对象是否被实例化 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]);//出现空指针异常的数组!!! } 或者:(没有验证,供楼主参考)。 //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]);//出现空指针异常的数组!!! } 楼上正解,楼主【tt.xuanTi();】调用的是tt的对象,所以this.temp还是没有初始化,这样肯定temp就会空指针。可以直接把【tt.xuanTi()】改成【this.xuanTi()】调用就行!相当于自己调用自己,temp就能初始化了。 高手!解决了我的问题,请教一下,能不能说的再详细些,每个对象调用相同方法后,初始化的数组时属于那个对象?this.temp,this是指什么,高手求教! this是一个指针,指向该对象。和直接调用temp是一样的,默认就是this。除了static数据是属于类,所有实例化对象共享以外;其他类属性都是对应每个实例化对象的。所以你的代码里面,temp分别属于this和tt,所以不能共享。 [求助] 正则表达式 数组不是对象 面向对象读取xml文件的内容是出现问题 怎么把字符A转换为ASCII码,如A=65 求助,大家帮忙看看如何实现登录功能 //程序中这种用法第一次看到,请问各位碰到过吗? 高手近来 问下ISO 10646和unicode的区别 在线等 我能在运行时动态地去修改ClassPath吗? JAVA初学者在写Collections类的方法实验时发现一个关于二分法有趣的问题 在线请教:如何把Jtree树形控件左边默认的把手(roothandle)去掉?? 怎样可以灵活运用多态? 获取系统当前时间。。。
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]);//出现空指针异常的数组!!!
}
//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]);//出现空指针异常的数组!!!
}
可以直接把【tt.xuanTi()】改成【this.xuanTi()】调用就行!相当于自己调用自己,temp就能初始化了。
除了static数据是属于类,所有实例化对象共享以外;其他类属性都是对应每个实例化对象的。所以你的代码里面,temp分别属于this和tt,所以不能共享。