如果fooService.getFoos()
返回List<Foo>
。
那么你可以这样写:
List<Foo> fooList = fooService.getFoos();
或这个:
List<Foo> fooList = new ArrayList(fooService.getFoos());
这两种方法之间的结果
fooList
是否有显着差异? 最佳答案
是的-您正在创建一个全新的List
,其中包含原始元素。您正在复制内存中的集合,并从头到尾进行迭代。您也没有使用服务提供的实例,也无法修改原始实例。最后,您在第二个片段中省略了泛型声明。
因此,使用第一个选项。
更新:您表示不允许修改原始列表。这实际上是fooService
的问题,而不是其客户的问题。如果该服务也由您控制,则返回Collections.unmodifiableList(originalList)
-这样客户端将无法执行修改操作(尝试时将引发异常)