2015-05-10 94 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