caballeros:
Estoy tratando de conseguir una util
como esta en la primavera de arranque:
public static boolean isAllEmptyOrNull(Collection... collectionList) {
for (Collection collection : collectionList) {
if (!Collections.isEmpty(collection)) {
return false;
}
}
return true;
}
para que pueda manejar casos como:
- isAllEmptyOrNull (listOfCat);
- isAllEmptyOrNull (listOfDog, mapOfStringToString);
- isAllEmptyOrNull (listOfDog, listOfCat);
- isAllEmptyOrNull (listOfDog, listOfCat, mapOfStringToList, mapOfStringToMap);
Cualquier ayuda será sinceramente apreciado :)
actualizado 06/12/2018
Gracias por la ayuda de @Deadpool, mi solución resulta:
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;
}
Por supuesto, puede utilizar stream
y method overloading
como NullPointer hace.
también:
No se . No se puede crear lo más genérica que busca un puesto Map
no es una Collection
.
Y, por supuesto, Collection... collectionList
significa args var para Collection
el tipo.
La única manera sería dividirlos en dos talones 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);
}