private void checkAnswer() 

for(int i=1;i<=number;i++) 

if(answer[i].compareTo(correctAnswer[i])==0) 

finalmask += mask[i]; 



这是一个考试系统的计算总分的方法 
其中,answer[]是考生答案的数组从1开始,correctAnswer[] 不说大家也该知道了吧 
compareTo,equals 我都用过了,还是不行,运行时: 
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
at Main.checkAnswer(Main.java:567) 
at Main.jiaojuan(Main.java:598) 
at Main.access$9(Main.java:596) 
at Main$3.actionPerformed(Main.java:261) 就是定位到if(answer[i].compareTo(correctAnswer[i])==0)这行了补充说明:我的数组时从1开始的,方便,不想从0开始,我试了一下,应该不是数组越界的问题吧~~~有劳各位了

解决方案 »

  1.   

    不对 空指针是说correctAnswer或者answer数组有个元素是Null没有赋值
      

  2.   

    数组从1开始用可以 但是你也要给number[0]一个值
      

  3.   

    楼上某人正解,两个数组中有个没赋值或赋了null了
      

  4.   

    answer[i].compareTo(correctAnswer[i])==0中的空指针异常时answer[i]抛出的,你试着打印answer[i],看看什么时候打印出null.
      

  5.   

    呵呵,也许某些同学直接放弃了一些题目,导致answer中出现空?
      

  6.   

    谢谢大家,大概应该是answer[0]和correctAnswer[0]没赋值的原因吧
    试试再说
    大家稍等
           
      

  7.   

    再次感谢大家,不仅仅是answer[0]的问题,
    我把数组中所有的项都给了个初值,终于o了
      谢谢大家