Mik*_*keG 3 java collections constructor
我有两个构造函数设置如下:
public XMessage(Information info, List<Object> results) {
this.information = info;
this.results = results;
}
public XMessage(Information info, Object result) {
this(info, Collections.singletonList(result));
}
Run Code Online (Sandbox Code Playgroud)
我通过传入一个Information对象和一个ArrayList对象来创建XMessage对象.当我检查结果时,它是一个包装ArrayList项的单例列表.为什么Java不使用更合适的构造函数以及强制它的选项是什么?
Tom*_*icz 11
调用第一个构造函数:
new XMessage(information, new ArrayList<Object>());
Run Code Online (Sandbox Code Playgroud)
调用第二个构造函数:
new XMessage(information, new ArrayList<String>());
Run Code Online (Sandbox Code Playgroud)
ArrayList<String>()不被视为List<Object>同时ArrayList<Object>是.考虑使用以下构造函数:
public XMessage(Information info, List<? extends Object> results)
Run Code Online (Sandbox Code Playgroud)
正如@LuiggiMendoza建议如下.
| 归档时间: |
|
| 查看次数: |
725 次 |
| 最近记录: |