web-dev-qa-db-fra.com

Liste vide Spring @Value par défaut

Existe-t-il un moyen de définir une liste vide comme valeur par défaut pour une propriété dans Spring, quelque chose comme:

@Value("${my.list.of.strings :" + new ArrayList<>() + "}")
private List<String> myList;

Évidemment pas une nouvelle ArrayList, mais j'ai besoin d'une liste vide à la place.

10
Roby Rodriguez

Après avoir jeté un coup d'œil à la spécification SpEL et combiné avec la réponse de @ javaguy, j'ai trouvé ceci:

@Value("${my.list.of.strings:}#{T(Java.util.Collections).emptyList()}")
private List<String> myList;
16
Roby Rodriguez

Vous pouvez utiliser Collections.emptyList()pour remplir l'objet de liste vide avec une taille nulle comme indiqué ci-dessous:

@Value("#{T(Java.util.Collections).emptyList()}")
private List<String> myList;

Cela vous donnera une taille nulle myList

0
developer
@Value("#{T(Java.util.Arrays).asList('${my.list.of.strings:}')}")
private List<String> myList;

fonctionne pour moi, en utilisant Spring 5.0.x (donne une liste vide, si votre propriété my.list.of.strings n'est pas configurée dans le contexte)

après, vous pouvez facilement faire quelque chose comme

CollectionUtils.isNotEmpty(myList)
0
Philipp Wirth