diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigDataLocationBindHandler.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigDataLocationBindHandler.java index 2ccf982a04..58b8e74d99 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigDataLocationBindHandler.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigDataLocationBindHandler.java @@ -16,6 +16,7 @@ package org.springframework.boot.context.config; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; @@ -44,23 +45,17 @@ class ConfigDataLocationBindHandler extends AbstractBindHandler { return withOrigin(context, (ConfigDataLocation) result); } if (result instanceof List) { - List list = ((List) result).stream().filter(Objects::nonNull).collect(Collectors.toList()); - for (int i = 0; i < list.size(); i++) { - Object element = list.get(i); - if (element instanceof ConfigDataLocation) { - list.set(i, withOrigin(context, (ConfigDataLocation) element)); - } - } - return list; + return ((List) result).stream() + .filter(Objects::nonNull) + .map((element) -> (element instanceof ConfigDataLocation) + ? withOrigin(context, (ConfigDataLocation) element) : element) + .collect(Collectors.toCollection(ArrayList::new)); } if (result instanceof ConfigDataLocation[]) { - ConfigDataLocation[] locations = Arrays.stream((ConfigDataLocation[]) result) + return Arrays.stream((ConfigDataLocation[]) result) .filter(Objects::nonNull) + .map((element) -> withOrigin(context, element)) .toArray(ConfigDataLocation[]::new); - for (int i = 0; i < locations.length; i++) { - locations[i] = withOrigin(context, locations[i]); - } - return locations; } return result; }