Guava - Panoramica

Cos'è Guava?

Guava è una libreria open source basata su Java e contiene molte librerie principali di Google, che vengono utilizzate in molti dei loro progetti. Facilita le migliori pratiche di codifica e aiuta a ridurre gli errori di codifica. Fornisce metodi di utilità per raccolte, memorizzazione nella cache, supporto di primitive, concorrenza, annotazioni comuni, elaborazione di stringhe, I / O e convalide.

Benefici di Guava

  • Standardized - La libreria Guava è gestita da Google.

  • Efficient - È un'estensione affidabile, veloce ed efficiente della libreria standard Java.

  • Optimized - La libreria è altamente ottimizzata.

  • Functional Programming - Aggiunge capacità di elaborazione funzionale a Java.

  • Utilities - Fornisce molte classi di utilità che sono regolarmente richieste nello sviluppo di applicazioni di programmazione.

  • Validation - Fornisce un meccanismo di convalida di sicurezza standard.

  • Best Practices - Sottolinea le migliori pratiche.

Considera il seguente frammento di codice.

public class GuavaTester {
   public static void main(String args[]) {
      GuavaTester guavaTester = new GuavaTester();
      
      Integer a =  null;
      Integer b =  new Integer(10);
      System.out.println(guavaTester.sum(a,b));
   }

   public Integer sum(Integer a, Integer b) {
      return a + b;
   }	
}

Eseguire il programma per ottenere il seguente risultato.

Exception in thread "main" java.lang.NullPointerException
   at GuavaTester.sum(GuavaTester.java:13)
   at GuavaTester.main(GuavaTester.java:9)

Di seguito sono riportati i problemi con il codice.

  • sum () non si prende cura di nessuno dei parametri da passare come null.

  • anche la funzione chiamante non si preoccupa di passare accidentalmente un valore nullo al metodo sum ().

  • Quando il programma viene eseguito, si verifica NullPointerException.

Per evitare i problemi di cui sopra, deve essere effettuato un controllo nullo in ogni luogo in cui sono presenti tali problemi.

Vediamo l'uso di Optional, una classe Utility fornita da Guava, per risolvere i problemi di cui sopra in modo standardizzato.

import com.google.common.base.Optional;

public class GuavaTester {
   public static void main(String args[]) {
      GuavaTester guavaTester = new GuavaTester();

      Integer invalidInput = null;
		Optional<Integer> a =  Optional.of(invalidInput);
      Optional<Integer> b =  Optional.of(new Integer(10));
      System.out.println(guavaTester.sum(a,b));      
   }

   public Integer sum(Optional<Integer> a, Optional<Integer> b) {
      return a.get() + b.get();
   }	
}

Eseguire il programma per ottenere il seguente risultato.

Exception in thread "main" java.lang.NullPointerException
	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:210)
	at com.google.common.base.Optional.of(Optional.java:85)
	at GuavaTester.main(GuavaTester.java:8)

Comprendiamo i concetti importanti del programma sopra.

  • Optional - Una classe di utilità, per fare in modo che il codice utilizzi correttamente il valore null.

  • Optional.of- Restituisce l'istanza della classe opzionale da utilizzare come parametro. Controlla il valore passato, non essere 'nullo'.

  • Optional.get - Ottiene il valore dell'input memorizzato nella classe Optional.

Utilizzando la classe Facoltativo, è possibile verificare se il metodo del chiamante sta passando un parametro appropriato o meno.