Am văzut-o metodă în java a declarat ca:
void foo(@Nullable Object obj)
{ ... }
Ce's sensul de @Null aici? Înseamnă intrare ar putea fi
null`?
Fără adnotare, intrare încă mai poate fi nulă, deci cred că'nu e doar asta?
Ea face clar că metoda acceptă valori nule, și că, dacă suprascrie metoda, ar trebui, de asemenea, accepta valori null.
De asemenea, servește ca un indiciu pentru cod analizoare ca FindBugs. De exemplu, dacă o astfel de metodă dereferences argument fără a verifica pentru nulă în primul rând, FindBugs va emite un avertisment.
Această adnotare este frecvent utilizat pentru a elimina NullPointerExceptions
. @Poate fi nul
este de multe ori spune că acest parametru ar putea fi null
. Bun exemplu de astfel de comportament pot fi găsite în Google Guice. În acest usoare cadru de injectare dependență vă spun că această dependență ar putea fi null
. Dacă ar încerca să treacă null
și fără adnotare cadrul ar refuza să-l fac's de locuri de muncă.
Ce este mai @Null poate fi folosit cu
@NotNull` adnotare. Aici puteți find câteva sfaturi cum să le folosească în mod corespunzător. Codul de inspecție în IntelliJ verifică adnotări și ajută pentru a depana cod.
Diferite instrumente pot interpreta sensul de @Null
diferit. De exemplu, Checker-Cadru și FindBugs a se ocupa de @poate fi nul
diferit.