Да - вы создаете совершенно новый List
, содержащий элементы оригинального.Вы дублируете коллекцию в памяти и выполняете ее от начала до конца.Вы также не используете экземпляр, предоставленный сервисом, и не можете изменить оригинал.И, наконец, вы пропустили объявление generics во 2-м фрагменте.
Так что используйте первый вариант.
Обновление: вы указали, что не можете изменятьОригинальный список.Это на самом деле проблема fooService
, а не его клиентов.Если служба также находится под вашим контролем, верните Collections.unmodifiableList(originalList)
- таким образом, клиенты не смогут выполнять операции модификации (при попытке будет сгенерировано исключение)