在JAVA中自己定义了一个函数为什么第一用的时候运行正常,第二次运行的时候就提示错误

函数的定义: public void remove (int begin)
{
System.out.println(begin);
for (int i =begin ;i< 19;i++)
{
this.cards[i].setBack_pic(this.cards[i+1].getBack_pic());
this.cards[i].setCard_size(this.cards[i+1].getCard_size());
this.cards[i].setCard_state(this.cards[i+1].getCard_state());
this.cards[i].setFront_pic(this.cards[i+1].getFront_pic());
}
this.cards[19]=null ;
this.setCurNum(this.getCurNum()-1);//牌的张数的改变
}
当第一次传0进去的进修,正常,紧接着在传0的时候就提示错误,错误代码:
Exception in thread "main" java.lang.NullPointerException
at Person.PeoPerson.remove(PeoPerson.java:103)
at Person.PeoPerson.first(PeoPerson.java:46)
at load.Main.main(Main.java:30)
Java Result: 1
我定义的是用我自己定义的一个类为元素的,this.cards[19]=null ;说明这个对象是空的,这个函数调用一次他的有效值就减少1个,

this.cards[19]=null ;
this.setCurNum(this.getCurNum()-1);
你这几句什么意思,是不是你cards数组成员减少了,但是你循环遍历的时候还是遍历了19次,当遍历的时候就报空指针了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-01
是不是GC没有来得及释放对象
第2个回答  2010-12-01
把函数中的两个19改成this.getCurNum()就行了
第3个回答  2010-12-01
java.lang.NullPointerException
情况不明。。debug调试
第4个回答  2010-12-01
空指针异常
相似回答