Właśnie zacząłem używać @NotNulladnotacji w Javie 8 i otrzymałem nieoczekiwane wyniki.
Mam taką metodę:
public List<Found> findStuff(@NotNull List<Searching> searchingList) {
... code here ...
}
Napisałem test JUnit przekazujący wartość null dla argumentu searchList. Spodziewałem się jakiegoś błędu, ale wyglądało to tak, jakby nie było adnotacji. Czy to oczekiwane zachowanie? Z tego, co zrozumiałem, miało to umożliwić pominięcie pisania standardowego kodu kontrolnego zerowego.
Bardzo mile widziane byłoby wyjaśnienie, co dokładnie ma robić @NotNull.
@NotNullto tylko adnotacja. Adnotacje same w sobie nic nie robią. Potrzebują procesora adnotacji w czasie kompilacji lub czegoś, co przetwarza go w czasie wykonywania.