2016-07-22 141 views
0

我有幾個對象與每個字符串字段;我想比較字符串,但我不能讓代碼工作,它總是返回null,即使當字符串是平等的。比較字符串字段不工作

songsList是這個對象的Arraylist。

public Song findSong(Song song){ 
    for(int i=0; i<songsList.size(); i++){ 
     if(song.getName().equals(songsList.get(i).getName())){ 
      return songsList.get(i); 
     } 
    } 
    return null; 
} 
+0

你需要顯示'song'和'songsList'中有什麼? – SomeDude

+0

你的songsList是靜態的嗎? –

+1

由於我沒有看到你的整個代碼,我假設'songsList'是一個ArrayList。您是否在Song類中嘗試了songsList.contains(歌曲)並覆蓋equals()方法並嘗試? – Naveen

回答

0

該錯誤是非常愚蠢的,我只需要交換什麼方法將返回的位置,循環內返回null和外部返回歌曲。我找到了你們寫的評論的解決方案.thx。

public Song findSong(Song song){ 
for(int i=0; i<songsList.size(); i++){ 
    if(song.getName().equals(songsList.get(i).getName())){ 
      return null; 
    } 
} 
return songsList.get(i); }