为什么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建议如下. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |