senhores:
Estou tentando conseguir um util
como este na Primavera de inicialização:
public static boolean isAllEmptyOrNull(Collection... collectionList) {
for (Collection collection : collectionList) {
if (!Collections.isEmpty(collection)) {
return false;
}
}
return true;
}
para que eu possa lidar com casos como:
- isAllEmptyOrNull (listOfCat);
- isAllEmptyOrNull (listOfDog, mapOfStringToString);
- isAllEmptyOrNull (listOfDog, listOfCat);
- isAllEmptyOrNull (listOfDog, listOfCat, mapOfStringToList, mapOfStringToMap);
Qualquer ajuda será sinceramente apreciado :)
Atualizado 2018/12/06
Obrigado pela ajuda de @Deadpool, minha solução acaba por:
public static boolean isAllCollectionEmptyOrNull(Collection... collections) {
for (Collection collection : collections) {
if (!Collections.isEmpty(collection)) {
return false;
}
}
return true;
}
public static boolean isAllMapEmptyOrNull(Map... maps) {
for (Map map : maps) {
if (!Collections.isEmpty(map)) {
return false;
}
}
return true;
}
Claro, você pode usar stream
e method overloading
como nullpointer faz.
também:
Não . Você não pode criá-lo como genérico, como você está procurando uma vez que um Map
não é um Collection
.
E, claro, Collection... collectionList
significa args var para Collection
tipo.
A única forma seria a de dividi-los em dois tocos separados como:
public static boolean isAllEmptyOrNull(Collection... collectionList) {
return Arrays.stream(collectionList).allMatch(Collection::isEmpty);
}
public static boolean isAllEmptyOrNull(Map... maps) {
return Arrays.stream(maps).allMatch(Map::isEmpty);
}