2015-01-14 20 views
8

Qual è il punto nell'annotazione Lombok@NonNull per un metodo?Cosa fa @NonNull su un metodo void?

class MyClass { 
    @NonNull 
    void run() { 
     // code here 
    } 
} 

Sono controlliamo l'istanza di class MyClass (MyClass obj == null)?

+0

@blank: questo non è su un parametro. –

risposta

14

Per un metodo void, non ha senso.

Per un metodo con un tipo di ritorno, si dimostra che non ritornerà nullo:

@NonNull String foo() { 
    // I promise I won't return null herre! 
} 

giudicare dalla tutorial, sembra che non genererà un controllo all'interno del metodo per garantire che it non è null, ma indica a qualsiasi chiamante che possono realisticamente aspettarsi che venga restituito un valore non nullo.

-2

È possibile utilizzare @NonNull sul parametro di un metodo o costruttore per fare in modo che lombok generi un'istruzione di assegno null per l'utente.

Lombok ha sempre trattato qualsiasi annotazione denominata @NonNull su un campo come segnale per generare un controllo Null se il lombok genera un intero metodo o costruttore per l'utente, tramite ad esempio @Data. Ora, tuttavia, l'utilizzo di di lombok su un parametro comporta l'inserimento di solo l'istruzione null-check all'interno del proprio metodo o costruttore.

+0

Sì, lo so. Ma la domanda riguarda il metodo void senza parametri. A mio avviso, se possiamo usare tale annotazione nel caso menzionato, 'Lombok' ha alcune cose fuorvianti qui. Perché è inutile usare @NonNull qui. – barbara

+1

@ user3430490 Stai solo plagiando [i documenti] (http://projectlombok.org/features/NonNull.html) senza dare un riferimento o evidenziandolo come una citazione, e senza rispondere alla domanda. –

+0

ok, ok ... cerco qui (http://homepages.ecs.vuw.ac.nz/~djp/JACK/) e so che @NonNull serve per evitare oggetti null al metodo. Spero che questo possa aiutare .... –

Problemi correlati