我有一个方法,它将ArrayList作为参数。 类歌有不同的方法,如getTitle(),getInterpret(),toString(),toString2()......
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将Song的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(i).toString2()上有一个错误,方法toString2()未定义类型Song,似乎我只能访问类Object的方法。
有人可以帮忙吗?
答案 0 :(得分:3)
您已将方法设为通用,并选择命名通用类型Song。它不应该是通用的:
public void printList(ArrayList<Song> songList,String sortBy){
另外,请将字符串与equals()
进行比较,而不是==
。