Google Guava: controllo dei parametri con Preconditions

Google Guava: controllo dei parametri con Preconditions

Google Guava è una libreria per Java con diverse utilità.

Oggi vediamo come usare la classe Preconditions!

Se usate Maven aggiungete questa dipendenza:

        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>27.0-jre</version>
        </dependency>

La classe Preconditions ci permette di verificare se un metodo o un costruttore è invocato con i parametri corretti.

Vediamo questo esempio:

import com.google.common.base.Preconditions;

public class Main {

    public static void main(String[] args) {
        try {
            getValue(null, 10);
        } catch (IllegalArgumentException ex) {
            System.out.println(ex.getMessage());
        }

        try {
            getValue("CIAO", 10);
        } catch (IllegalArgumentException ex) {
            System.out.println(ex.getMessage());
        }

        try {
            getValue(null, 0);
        } catch (IllegalArgumentException ex) {
            System.out.println(ex.getMessage());
        }
    }

    public static void getValue(String value, int numero) {
        Preconditions.checkNotNull(value, "La stringa non può essere nulla");
        Preconditions.checkArgument(numero > 0, "Il numero deve essere maggiore di zero");
        System.out.println(value + "-" + numero);
    }
}

Nel metodo facciamo un controllo che la stringa non sia null e che il numero sia maggiore di zero.

Preconditions invia una eccezione di tipo IllegalArgumentException, e visualizza gli errori che abbiamo impostato noi.

Enjoy!




Share

Commentami!

About Mattepuffo.com

Blog dedicato all'informatica e alla programmazione!
Tutti i contenuti di questo blog, tranne casi particolari, sono sotto licenza Licenza Creative Commons Creative Commons Attribution-Noncommercial-Share Alike 2.5. .

2576 articoli
310 commenti
19 progetti
Altri link
  • About
  • Scrivimi
  • Copyright
  • Sitemap
  • matteo.ferrone@yahoo.it
  • GitHub
  • Privacy Policy