2017-04-02 69 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

好吧,它只是一个包装问题 –