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.
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;
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
@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)