styl kodowy; umieścić javadoc przed czy po adnotacji?

183

Wiem, że nie jest to najistotniejszy z problemów, ale właśnie zdałem sobie sprawę, że mogę umieścić blok komentarzy javadoc przed adnotacją lub po niej. Co chcielibyśmy przyjąć jako standard kodowania?

/**
 * This is a javadoc comment before the annotation 
 */
@Component
public class MyClass {

    @Autowired
    /**
     * This is a javadoc comment after the annotation
     */
    private MyOtherClass other;
}
Paul McKenzie
źródło

Odpowiedzi:

191

Przed adnotacją, ponieważ adnotacja to kod, który „należy” do klasy. Zobacz przykłady z javadoc w oficjalnej dokumentacji.

Oto przypadkowy przykład, który znalazłem na innej oficjalnej stronie Java :

/**
 * Delete multiple items from the list.
 *
 * @deprecated  Not for public use.
 *    This method is expected to be retained only as a package
 *    private method.  Replaced by
 *    {@link #remove(int)} and {@link #removeAll()}
 */
@Deprecated public synchronized void delItems(int start, int end) {
    ...
}
Peter Jaric
źródło
8
Interesujące tutaj również - adnotacja znajduje się w tym samym wierszu, co inne kwalifikatory dla metody. Nigdy wcześniej tego nie widziałem, ale wydaje się sugerować, że adnotacje powinny być traktowane podobnie jak inne kwalifikatory do metody i jako takie javadoc zdecydowanie powinien je wyprzedzić.
ArtOfWarfare
8
Umieszczenie tych samych adnotacji w tej samej linii może szybko wymknąć się spod kontroli, jeśli używasz czegoś takiego jak Jackson. Każdą adnotację umieszczam w osobnej linii.
WW.
17

Zgadzam się z odpowiedziami już udzielonymi.

Adnotacje są częścią kodu, a javadoc jest częścią dokumentacji (stąd nazwa).

Dlatego dla mnie rozsądne jest utrzymanie razem części kodu.

perdian
źródło
11

Wszystko sprowadza się do czytelności. Moim zdaniem kod jest bardziej czytelny dzięki Adnotacjom bezpośrednio nad metodą / polem.

Robby Pond
źródło
11

Oprócz standardu kodowania wydaje się, że narzędzie javadoc nie przetwarza komentarzy javadoc, jeśli są one umieszczone po adnotacjach. W przeciwnym razie działa dobrze.

Shadrik
źródło
0

Zgadzam się ze wszystkimi powyższymi. Może być pomocne dla innych, że szablony stylu kodu IntelliJ (Idea) zawodzą zarówno fałszywie dodatnie (gdy @ rzuty są określone poprawnie, ostrzega), jak i fałszywie ujemne (gdy @ rzuty nie są określone, ale powinny być) przy użyciu stylu RestEasy adnotacje. Stawiam moje javadoki ponad wszystko inne, potem adnotacje, a potem kod.

Zobacz raport o błędzie tutaj: https://youtrack.jetbrains.com/issue/IDEA-220520

Max P. Magee
źródło