gpt4 book ai didi

java - arraylist 类型的未定义方法

转载 作者:行者123 更新时间:2023-12-01 20:52:10 25 4
gpt4 key购买 nike

我有一个方法,它接受 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 将歌曲的 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的方法。

有人可以帮忙吗?

最佳答案

您已将方法设为泛型,并选择将泛型类型命名为 Song。它不应该是通用的:

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

此外,请使用 equals() 比较字符串,而不是 ==

关于java - arraylist 类型的未定义方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43167415/

25 4 0