Ich habe oft ein Dilemma, wenn ich Javadoc für Eigenschaften / Mitglieder einer "einfachen" POJO-Klasse schreibe, die nur Eigenschaften und Getter und Setter enthält (DTO-Stil) ....
1) Schreiben Sie Javadoc für die Eigenschaft
oder ...
2) Schreiben Sie Javadoc für den Getter
Wenn ich Javadoc für die Eigenschaft schreibe, kann meine IDE (Eclipse) dies (natürlich) nicht anzeigen, wenn ich später über die Code-Vervollständigung auf das POJO zugreife. Und es gibt kein Standard-Javadoc-Tag, mit dem ich das Getter-Javadoc mit der eigentlichen Eigenschaft Javadoc verknüpfen kann.
Ein Beispiel:
public class SomeDomainClass {
/**
* The name of bla bla bla
*/
private String name;
/**
* @return INSERT SOME SMART JAVADOC TAG LINKING TO name's javadoc
*/
public String getName() {
return name;
}
Grundsätzlich wäre es also interessant zu hören, wie andere vorgehen, damit Ihre Eclipse-IDE die Beschreibung der Javadoc-Eigenschaften für Ihre Getter anzeigt - ohne den Javadoc-Kommentar duplizieren zu müssen.
Ab sofort denke ich darüber nach, in meiner Praxis nur die Getter und nicht die Eigenschaften zu dokumentieren. Aber es scheint nicht die beste Lösung zu sein ...
Antworten:
Sie können private Mitglieder beim Generieren von Javadocs (mit -private) einbeziehen und dann mit @link auf diese Feldeigenschaft verlinken.
Wenn Sie das Javadoc nicht für alle privaten Mitglieder generieren möchten, können Sie alternativ eine Konvention festlegen, um alle Getter zu dokumentieren und @link für Setter zu verwenden.
quelle
@link
bedeutet einen Link, auf den geklickt werden muss, um den aktuellen Javadoc anzuzeigen . Es ist kein Eclipse-Usability-Problem, sondern die falsche Lösung für die Bereitstellung einfach zu verwendender Javadocs.Lombok ist eine sehr praktische Bibliothek für solche Aufgaben.
Das ist alles was du brauchst! Die
@Getter
Annotation erstellt eine Getter-Methode für jedes private Feld und hängt das Javadoc daran an.PS : Die Bibliothek hat viele coole Funktionen, die Sie vielleicht auschecken möchten
quelle
Ich mache beides, unterstützt von Eclipse's Autocomplete.
Zuerst dokumentiere ich die Eigenschaft:
Dann kopiere ich dies und füge es in den Getter ein:
Bei Eclipse haben @ return-Anweisungen eine automatische Vervollständigung. Daher füge ich das Wort Gets hinzu, schreibe das "t" in Kleinbuchstaben und kopiere den Satz mit dem Kleinbuchstaben "t". Ich benutze dann @return (mit Eclipse Autocomplete), füge den Satz ein und schreibe dann das T in der Rückgabe in Großbuchstaben. Es sieht dann so aus:
Schließlich kopiere ich diese Dokumentation in den Setter:
Dann ändere ich es und mit Eclipse Autocomplete können Sie nicht nur das @ param-Tag, sondern auch den Namen des Parameters erhalten:
Dann bin ich fertig. Meiner Meinung nach macht es dieses Templating auf lange Sicht viel einfacher, sich nicht nur durch Wiederholung daran zu erinnern, was die Eigenschaft bedeutet, sondern es macht es auch einfacher, dem Getter und Setter zusätzliche Kommentare hinzuzufügen, wenn Sie eine Seite hinzufügen möchten Effekte (z. B. keine Null-Eigenschaften zulassen, Zeichenfolgen in Großbuchstaben umwandeln usw.). Ich habe untersucht, wie ich ein Eclipse-Plugin für diesen Zweck erstellen kann, aber ich konnte keinen geeigneten Erweiterungspunkt für das JDT finden, also habe ich aufgegeben.
Beachten Sie, dass der Satz möglicherweise nicht immer mit einem T beginnt - es ist nur der erste Buchstabe, der beim Einfügen nicht kapitalisiert / rekapitalisiert werden muss.
quelle
Ich denke wirklich, dass es ein Problem ist und der offizielle Javadoc-Leitfaden sagt nichts darüber aus. C # kann dies auf elegante Weise mit der Verwendung von Eigenschaften lösen (ich codiere nicht in C #, aber ich denke wirklich, dass es eine nette Funktion ist).
Aber ich habe eine Vermutung: Wenn Sie erklären müssen, was someString ist, ist es vielleicht ein "schlechtes kleines" an Ihrem Code. Es kann bedeuten, dass Sie SomeClass schreiben sollten, um someString einzugeben, damit Sie erklären, was someString in der SomeClass-Dokumentation ist, und nur damit die Javadocs in getter / setter nicht erforderlich sind.
quelle