为什么我从对象数组中收到NullPointException?

时间:2017-05-03 16:30:25

标签: java arrays object for-loop

感谢您抽出宝贵时间帮助我。我有3个与彼此互动的课程:Score,Golfer和GolferTester。高尔夫球手包含一系列Score对象。我的问题是在运行GolferTester时通过Golfer.addScore(String,int,double,int,String)向数组中添加单个Score对象。我已经尝试多次重新排列Golfer.addScore()并且在执行Golfer.findScore(String)时仍然收到NullPointerException。

我认为这里最重要的一点就是一切都运行顺畅,只要我不要过早地结束返回的Golfer.addScore()for循环。但是不停止循环使用nextScore填充整个数组,并呈现我的方法以找到要填充的数组槽(通过定位空槽),在一次调用后无效。我将在下面显示代码。谢谢你的帮助!

Golfer.addscore(String newCourse,int newScore,double newCourseRating,int newSlope,String newDate):

public void addScore(String newCourse, int newScore,
  double newCourseRating, int newSlope, String newDate)
{
  Score nextScore = new Score(newCourse, newDate, newScore, 
           newCourseRating, newSlope);
  for (int i = 0; i < scores.length; i++)
  {
     if (scores[i] == null)
     {
        scores[i] = nextScore;
        return;
     }
  }
}

Golfer.findScore(字符串日期):

private int findScore(String date)
{
  int ans = 0;
  for (int i = 0; i < scores.length; i++)
  {
     String iDate = scores[i].getDate();
     if (iDate.equals(date))
        ans = i;
  }
  if (ans == 0)
     return -1;
  else 
     return ans;
}

Golfer.getScore(String date):

public Score getScore(String date)
{
  int a = findScore(date);
  return scores[a];
}

类GolferTester:

public class GolferTester
{
   public static void main (String[] args)
   {
     Golfer golfer1 = new Golfer("John", "homecourse", 4);
     golfer1.addScore("course1", 75, 68.5, 105, "05/03/2017");
     System.out.println(golfer1.getScore("05/03/2017"));  
   }
}

如上所述,只需从Golfer.addScore()中的for循环中删除返回方面,即可使一切正常运行。我尝试过不使用&#34;返回&#34;具体而言,但无济于事。再次感谢您的任何意见。

0 个答案:

没有答案