2013-06-08 5 views
14

Wygląda na to, że istnieje sporo różnych adnotacji wskazujących stan zerowania parametrów metody i wartości zwracanych w Javie, a sytuacja ewoluowała.Jaka jest sytuacja w 2013 r. Z adnotacjami @notnull w Javie?

Jakie są najlepsze praktyki w 2013 r. Do opisywania moich metod neplowania?

Jestem świadomy tego pytania, ale jest od 3 lat temu i podejrzewam, że sytuacja się zmieniła od tamtego czasu:

Which @NotNull Java annotation should I use?

Osobiście korzystam IntelliJ IDEA, ale ma nadzieję na rozwiązanie to nie wiąże mojego projektu z tym IDE. Używam Mavena do zarządzania zależnościami.

Odpowiedz

4

AFAIK, prawie standardową biblioteką jest com.google.code.findbugs: jsr305. To na przykład Guava. Jest obsługiwany przez FindBugs, który jest prawdopodobnie najczęściej używanym narzędziem do analizy kodów bajtowych.

IntelliJ obsługuje również te adnotacje.

+0

Jeśli używa Maven dostanie go za darmo, kiedy dodaje guawy. Guawa to droga do przebycia, ponieważ Google jest największym zwolennikiem tych adnotacji. –

+1

@AdamGent: [Tak już nie jest] (http://code.google.com/p/guava-libraries/issues/detail?id=1096) od Guava 13+. – Coderer

1

Powodem, dla którego jest tak wiele, jest różnica między programowaniem defensywnym a sprawdzaniem danych wejściowych.

@NotNull to platforma do sprawdzania fasoli JSK 303. @Nullable to JSR 305, który służy do defensywnego programowania/projektowania według umowy.

Znajdź bugów guawa jeden jest defacto JSR 305. Hibernate oferuje dość dużo defacto JSR 303.