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)?
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)?
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.
È 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.
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
@ 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. –
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 .... –
@blank: questo non è su un parametro. –