gpt4 book ai didi

java - 为什么 Java 在构造函数重载的情况下无法识别我的 ArrayList

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:35:11 25 4
gpt4 key购买 nike

我有两个构造函数设置如下:

public XMessage(Information info, List<Object> results) {
this.information = info;
this.results = results;
}

public XMessage(Information info, Object result) {
this(info, Collections.singletonList(result));
}

我通过传入一个 Information 对象和一个 ArrayList 对象来创建 XMessage 对象。当我检查结果时,它是一个包装 ArrayList 项目的单例列表。为什么 Java 不使用更合适的构造函数?我有什么选择可以强制使用它?

最佳答案

调用第一个构造函数:

new XMessage(information, new ArrayList<Object>());

调用第二个构造函数:

new XMessage(information, new ArrayList<String>());

ArrayList<String>()不被视为 List<Object>同时 ArrayList<Object>是。考虑使用以下构造函数:

public XMessage(Information info, List<? extends Object> results)

正如下面@LuiggiMendoza所建议的那样。

关于java - 为什么 Java 在构造函数重载的情况下无法识别我的 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10643846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com