2015-05-10 68 views
0

我对数组有点困惑,并希望有人能帮助我。数组返回空值

我希望这是有道理的,因为我有点困惑。任何帮助深表感谢!

while循环创建类的对象“联盟”

 while (lineScanner.hasNextLine()) 
     { 
     currentLine = lineScanner.nextLine(); 
      String[] newSSs = currentLine.split(","); 
      Team team = new Team(newSS[0]); 
      team.setWins(Integer.valueOf(newSS[1])); 
      team.setDraws(Integer.valueOf(newSS[2])); 
      team.setLoses(Integer.valueOf(newSS[3])); 
      team.setPoints(team.calculatePoints()); 
+2

我太有点迷茫......在哪里你的代码中的'ArrayList's? – davide

+1

你能发表更多的代码吗?从你发布的代码中发现问题并不明确。我在该代码中看不到ArrayList。 – Eran

+0

我仍然没有看到'ArrayList' ...我认为你应该发布更多的'League.class'(并且很可能是你的while循环周围的东西) – davide

回答

1

我想我知道你在试图做... 创建while循环前一个ArrayList的是什么(你需要的集合某种方式来存储你的解析团队):

private ArrayList<Team> teams = new ArrayList<Team>(); 

while (lineScanner.hasNextLine()){ 
    currentLine = lineScanner.nextLine(); 
    String[] newSSs = currentLine.split(","); 
    Team team = new Team(newSS[0]); 
    team.setWins(Integer.valueOf(newSS[1])); 
    team.setDraws(Integer.valueOf(newSS[2])); 
    team.setLoses(Integer.valueOf(newSS[3])); 
    team.setPoints(team.calculatePoints()); 
} 

你真的只有一个数组 - 一个持有团队的数组。 newSSs的生命周期仅限于一次循环,一旦lineScanner没有更多的行要处理,循环结束并且newSSs被处置。

我希望它能帮助

0

我想你Team类有以下方法 -

setWins() 
setDraws() 
setLoses() 
setPoints() 

但在这里你要使用这些方法,形成你已经声明为一个数组Team team -

Team team = new Team(newSS[0]); 

由于这里teamTeam一个阵列试图做到这一点 -

team[0].setWins(Integer.valueOf(newSS[1])); 
team[0].setDraws(Integer.valueOf(newSS[2])); 
team[0].setLoses(Integer.valueOf(newSS[3])); 
+0

Team team = new Team(newSSs [0]); --->我认为这只是将Team的名字存储在newSSs [0]中,以便将其存储在Team的构造函数中。 – Suspended

1

我猜测:

ArrayList<Team> list = new ArrayList<Team>(); 
    for(int i=0;i<5;i++) 
    list.add(null); 

    //change values 
    list.set(0,new Team(newSS[0]); 
    list.get(0).setWins(Integer.valueOf(newSS[1])); 
0

从代码片段似乎要存储在一个团队对象队伍的细节。但是,您有许多Team对象,并且需要它们的数组。此接近:

ArrayList<Team> teamList = new ArrayList<Team>(); 
while (lineScanner.hasNextLine()) 
    { 
    currentLine = lineScanner.nextLine(); 
     String[] newSSs = currentLine.split(","); 
     Team team = new Team(newSS[0]); 
     team.setWins(Integer.valueOf(newSS[1])); 
     team.setDraws(Integer.valueOf(newSS[2])); 
     team.setLoses(Integer.valueOf(newSS[3])); 
     team.setPoints(team.calculatePoints()); 
teamList.add(team); 
} 

Java 7 ArrayList Java 8 ArrayList

+0

当我使用这个时,我得到'实际参数Team []不能通过方法调用转换转换为Team') – sobm