我想在JcomboBoxe中显示名为CodeA(字符串类型)的变量中的每个项目。我有一条错误消息:


  没有为Album(int, String)找到合适的构造函数构造函数Album.Album()不适用(实际和形式参数列表的长度不同)构造函数Album.Album(String, String, Chanteur, Date)不适用(实际和形式参数列表的长度不同)


ArrayList<Album> listeCats = daoLoc.selectAlbums();
listeCats.add(0, new Album(0,"*"));

for (Album cat : listeCats)
{
    jComboBoxChanteur.addItem(cat);
}


所以我的问题出在我的构造函数Album中?

public class Album
{
    private String codeA;
    private String titreA;
    private Chanteur chantAlb;
    private Date dateApp;

    public Album() {}

    public Album(String codeA, String titreA, Chanteur chantAlb, Date dateApp)
    {
        this.codeA    = codeA;
        this.titreA   = titreA;
        this.chantAlb = chantAlb;
        this.dateApp  = dateApp;
    }
}


我不理解StringInt之间的转换

编辑:enter image description here

最佳答案

您有两个构造函数:默认一个构造函数和一个接受StringStringChanteurDate的构造函数。

然后尝试创建一个新的Album对象,如下所示:

new Album(0,"*")


(您尝试创建一个以Albumint作为构造函数参数的String对象。)

您需要添加参数以匹配您的一个构造函数,或者创建一个仅接受intString的新参数。

编辑:

如果您只想创建一个新的构造函数以接受intString,则必须创建一个新的int变量,然后创建新的构造函数:

int newVariableName;
public Album(int codeA, String titreA) {
    this.newVariableName = codeA;
    this.titreA = titreA;
}


或如果0应该是字符串,请在其周围加上引号:

new Album("0","*")

07-25 23:29
查看更多