traduccion spanish google fruta examples espaƱol java guava

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



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.