将ImmutableList转换为List

时间:2014-10-27 13:57:26

标签: java list guava

虽然我的研究是围绕圈子进行的,但看起来Google Guava的ImmutableList实现了List。所以我可以把它投到List,对吗?我知道如果使用其中一个List的修改方法会引发错误,但是这一切都可能出错吗?

public List<Integer> getList() { 
    return ImmutableList.of(1,2,3);
}

2 个答案:

答案 0 :(得分:4)

如果它实现List,则无需将其强制转换为List。您可以将其分配给List变量,或将其传递给期望List而无需投放的方法。

而且,是的,调用修改List的任何方法都会引发异常,但无论是否将其转换为List,都会发生这种情况。

答案 1 :(得分:0)

我发现一个更大的问题,我认为你不理解。您无法将对象向下转换为对象(ImmutableList)实现的对象类型。 List<E>ImmutableList的界面。您可以将其强制转换为类型List<E>,但是您将丢失ImmutableList已提供/提供List不会的所有内容。