2017-04-02 55 views
0

我有一個方法需要一個ArrayList作爲參數。 類首歌曲都有型動物的方法,如的getTitle(),getInterpret(),的toString(),toString2()...arraylist undefined方法類型

public class Song implements Comparable<Song>{ 

private String title; 
private String interpret; 

public Song(String title,String interpret){ 

    this.title=title; 
    this.interpret=interpret; 

} 

public String getTitle() { 
    return title; 
} 

public String getInterpret() { 
    return interpret; 
} 


public String toString2(){ 
    return title+" - "+interpret; 
} 

@Override 
public int compareTo(Song otherSong) { 

    return title.compareToIgnoreCase(otherSong.getTitle()); 
} 

public String toString() { 

    return interpret+" - "+title; 
} 

}

該方法的printList取宋的ArrayList作爲參數:

public <Song> void printList(ArrayList<Song> songList,String sortBy){ 

    JLabel track; 

    for(int i=0;i<songList.size();i++){ 

     if(sortBy=="Artist"){ 
     track = new JLabel("\n- "+songList.get(i).toString());} 

     else if(sortBy=="Song"){ 
     track = new JLabel("\n- "+songList.get(i).toString2());} 

    } 

我有songList.get(ⅰ).toString2()的誤差,該方法toString2()是未定義的類型樂曲,好像我只能對類對象的方法訪問。

有人可以幫忙嗎?

+0

你爲什麼要命名方法'toString2()'? – Ravi

+0

嗨,因爲toString2()只是toString() –

回答

3

你已經使你的方法是通用的,並選擇命名泛型類型的歌曲。它不應該是通用的:

public void printList(ArrayList<Song> songList,String sortBy){ 

而且,比較字符串與equals(),不==

+0

的變體謝謝你的回答,但是當我在方法聲明中刪除「」時,編譯器告訴我「Song不能解析爲類型」,do你知道爲什麼? –

+0

好吧,它只是一個包裝問題 –