加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

为什么Java不会在重载的构造函数情况下识别我的ArrayList

发布时间:2020-12-15 04:57:40 所属栏目:Java 来源:网络整理
导读:我有两个构造函数设置如下: public XMessage(Information info,ListObject results) { this.information = info; this.results = results;}public XMessage(Information info,Object result) { this(info,Collections.singletonList(result));} 我通过传入
我有两个构造函数设置如下:

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建议如下.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读