【问题标题】:Constructors String in IntInt 中的构造函数字符串
【发布时间】:2018-06-03 21:41:44
【问题描述】:

我想在 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

【问题讨论】:

  • "我不明白 String 和 Int 之间的转换" - 没有。当您使用字符串连接时,只有“内置”转换。您的代码无法编译,因为您尝试调用构造函数Album(int, String),但此构造函数不存在。
  • 通常情况下,我应该在构造函数中只调用一个字符串? :S

标签: java swing


【解决方案1】:

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

然后你尝试像这样创建一个新的Album 对象:

new Album(0,"*")

(您尝试使用intString 作为构造函数参数创建Album 对象。)

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

编辑:

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

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

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

new Album("0","*")

【讨论】:

  • 我应该在这里创建一个参数 (0,new Album(0,"*"));在构造函数中,但是什么?
  • 差不多,Album后面的0有问题 listeCats.add(0, new Album(0,"*"));消息是“不兼容的类型:int 无法转换为 String”:-s
  • @juliiiie 查看我的新编辑。 0 应该是字符串吗?我不太确定你为什么要将这些参数传递给构造函数
  • @GBlodgett:我没有错误消息非常感谢,但是在我的 jComboBoxe 中有几个奇怪的文字“transfertObjectAlbum”见截图(第一条消息)
  • 我认为 0 不重要?我只需要恢复字符串
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 2021-11-29
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多