当我执行以下代码时,它可以正常工作。
List<String> singletonList = Collections.singletonList("Hello");
List<String> s = Collections.emptyList();
singletonList.addAll(s);
但是,当我尝试执行以下操作时,会出现编译错误。为什么?
List<String> singletonList = Collections.singletonList("Hello");
singletonList.addAll(List<String> Collections.emptyList());
Collections.emptyList是创建空列表的一种类型安全的方法。但是为什么我的程序不编译呢?我知道我不能添加到不可变列表(
UnsupportedOperationException
),但是允许添加一个空列表。实际上,我正在对此进行测试,并且注意到了上述问题。 最佳答案
Collections.emptyList()
返回的List<Object>
不是List<String>
(与它没有任何类型关系),所以不允许强制转换。
您需要的是以下内容:
singletonList.addAll(Collections.<String>emptyList());
关于java - 添加到空列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23141323/