使用new(ArrayList)转换引用

时间:2014-01-06 20:31:18

标签: java casting object-oriented-analysis

我有一个返回List的方法。 (getListMethod)

是否存在功能差异?

ArrayList myList = (ArrayList) getListMethod();


ArrayList myList = new ArrayList(getListMethod());

1 个答案:

答案 0 :(得分:9)

是的,有区别。

ArrayList myList = (ArrayList) getListMethod();  

创建对同一ArrayList的新引用,而

ArrayList myList = new ArrayList(getListMethod());  

将旧列表的元素复制到新列表中。

我在这里假设您知道getListMethod()确实返回ArrayList,否则您可能会遇到第一个变体的其他问题。