2010-01-29 11 views
39

Ich möchte die {@inheritDoc} Klasse verwenden, um Methoden aus meiner abstrakten Klasse zu erben. In der Dokumentation für die abstrakte Klasse beziehe ich mich auf die abstrakte Klasse nach Namen. Wie kann ich dies so kennzeichnen, wenn die Unterklasse die Dokumentation von der Superklasse erbt, ersetzt sie den Namen der abstrakten Klasse durch den Namen der Unterklasse?Javadoc {@inheritDoc} Tag Klasse

Antwort

44

Was Sie beschreiben, wird vom javadoc-Generierungstool nicht unterstützt.

Und ich denke, dass es ein guter Grund auch hierfür:

Wenn Ihre Methode in der Unterklasse ist lediglich eine Implementierung einer abstrakten Methode, dann denke ich, es wäre richtig die abstrakte Klasse zu verlassen "Nennen Sie es dort.

Auf der anderen Seite, wenn Ihre Methode in der Unterklasse nicht nur eine einfache Implementierung ist, und etwas mehr, das bemerkenswert ist (genug, um in der Javadoc erwähnt werden), sollten Sie ein neues Javadoc auf die Methode schreiben in die Unterklasse, anstatt inheritDoc aufzurufen.

+1

Mein Grund dafür war, dass der Leser meines Codes normalerweise nicht die abstrakte Klasse hinter der Implementierung betrachten würde, also wollte ich es verstecken. Es scheint jedoch, dass ich das nicht tun kann. Danke trotzdem. – LandonSchropp

+1

Wenn der Benutzer Ihrer Klasse die Dokumentation für die Methode benötigt, aber nicht wissen sollte, ob die abstrakte Basisklasse vorhanden ist, sollte die Methodendefinition zusammen mit dem Javadoc der abstrakten Klasse in eine Schnittstelle verschoben werden. Im Wesentlichen ist das Interface, worüber der Benutzer handelt. Beide Punkte in der obigen Antwort würden immer noch zutreffen. – GreenGiant

15

Ich bin mir nicht bewusst, einen Weg, aber Sie könnten genauer ausführen, warum Sie {@inheritDoc} dies tun möchten. Ich mag das missverstehen, aber es scheint verwirrend. Sie können dokumentieren, wie sich Ihre konkrete Implementierung vom übergeordneten Element unterscheidet, und @see verwenden, um auf den Vertrag in der abstrakten Klasse zu verweisen. Hinweis "Automatic Copying of Method Comments" kann die Notwendigkeit einer expliziten {@inheritDoc} überflüssig machen.

+0

Ich glaube, ich verstehe. Vielen Dank. – LandonSchropp

0

Sie können auch, IIRC, zusätzlichen Text um das {@inheritDoc} Tag in Ihren eigenen Kommentaren schreiben.

Verwandte Themen