java - spanish - guava traduccion
Google Guava isNullOrEmpty para colecciones (7)
Veo que la guayaba tiene el método de utilidad isNullOrEmpty para Strings
Strings.isNullOrEmpty(str)
¿Tenemos algo similar para las listas? Algo como
Lists.isNullOrEmpty(list)
que debería ser equivalente a
list == null || list.isEmpty()
Además, ¿tenemos algo similar para Arrays? Algo como
Arrays.isNullOrEmpty(arr)
que debería ser equivalente a
arr == null || arr.length == 0
Apache CollectionUtils 4 tiene un método CollectionUtils.emptyIfNull() que devuelve una lista vacía si la colección es nula. Esto es muy útil en un ciclo foreach, por lo que no es necesario hacer una comprobación nula antes de iterar
Hay un CollectionUtils.isEmpty() en commons-collections.
Mi solución es: MoreObjects.firstNonNull (list, Collections. EmptyList ())
Estoy usando Guava MoreObjects con JDK Collections.
@Test
public void listnull() {
List<String> list = null;
for (String str : MoreObjects.firstNonNull(list, Collections.<String> emptyList())) {
System.out.println(str);
}
list = new ArrayList<String>();
list.add("http://.com/");
for (String str : MoreObjects.firstNonNull(list, Collections.<String> emptyList())) {
System.out.println(str);
}
}
Mira Appache Collections CollectionUtils.isEmpty () devuelve verdadero si la colección es nula o está vacía
No, este método no existe en Guava y de hecho está en nuestro "cementerio de ideas".
No creemos que "es nulo o está vacío" es una pregunta que realmente desea hacer sobre una colección.
Si una colección puede ser nula, y la nula debe tratarse como si fuera vacía, entonces quite toda esa ambigüedad del camino, como esta:
Set<Foo> foos = NaughtyClass.getFoos();
if (foos == null) {
foos = ImmutableSet.of();
}
o de esta manera (si lo prefiere):
Set<Foo> foos = MoreObjects.firstNonNull(
NaughtyClass.getFoos(), ImmutableSet.<Foo>of());
Después de eso, puedes usar .isEmpty()
como normal. Haz esto inmediatamente después de llamar al travieso API y has dejado atrás las rarezas, en lugar de dejar que continúe indefinidamente.
Y si el "nulo que realmente significa colección vacía" no se te devuelve, sino que se te pasa, tu trabajo es fácil: solo deja que se NullPointerException
una NullPointerException
, y haz que la persona que llama se levante.
Spring Framework tiene una clase de utilidades especializada llamada CollectionUtils
. Y el método que está buscando es: org.springframework.util.CollectionUtils.isEmpty
. Devuelve true para colecciones nulas y vacías.
Y para las matrices hay org.springframework.util.ObjectUtils.isEmpty
método org.springframework.util.ObjectUtils.isEmpty
que se comporta de manera muy similar.
Una cosa que tenderá a encontrar en toda Guava es que tienden a ser muy antagónicos hacia null
s. Los autores desean disuadirlo de usar null
tanto como probablemente lo haga, y proporcionar métodos de utilidad para facilitar el uso de null
sería contraproducente en este sentido.
Si desea utilizar el paradigma de Guava, considere si el origen de esta colección (o matriz) realmente debería devolver null
. De lo contrario, considere marcarlo como " @NonNull
y devolver colecciones vacías en lugar de null
. O como un parámetro para una función que no espera listas con valores null
, considere usar Preconditions.checkNotNull
, que arroja una excepción si se null
un null
(inesperadamente).
Si null
es realmente legítimo, list == null || list.isEmpty()
list == null || list.isEmpty()
no es tan difícil.