虽然我的研究是围绕圈子进行的,但看起来Google Guava的ImmutableList
实现了List
。所以我可以把它投到List
,对吗?我知道如果使用其中一个List
的修改方法会引发错误,但是这一切都可能出错吗?
public List<Integer> getList() {
return ImmutableList.of(1,2,3);
}
答案 0 :(得分:4)
如果它实现List,则无需将其强制转换为List
。您可以将其分配给List
变量,或将其传递给期望List
而无需投放的方法。
而且,是的,调用修改List
的任何方法都会引发异常,但无论是否将其转换为List
,都会发生这种情况。
答案 1 :(得分:0)
我发现一个更大的问题,我认为你不理解。您无法将对象向下转换为对象(ImmutableList)实现的对象类型。 List<E>
是ImmutableList
的界面。您可以将其强制转换为类型List<E>
,但是您将丢失ImmutableList已提供/提供List不会的所有内容。