Ich habe ein kleines Codebeispiel, das ich in den Javadoc-Kommentar für eine Methode aufnehmen möchte.
/**
* -- ex: looping through List of Map objects --
* <code>
* for (int i = 0; i < list.size(); i++) {
* Map map = (Map)list.get(i);
* System.out.println(map.get("wordID"));
* System.out.println(map.get("word"));
* }
* </code>
*
* @param query - select statement
* @return List of Map objects
*/
Das Problem ist, dass das Codebeispiel im Javadoc ohne Zeilenumbrüche angezeigt wird, was das Lesen erschwert.
-- ex: looping through List of Map objects -- for (int i = 0; i list.size(); i++) { Map map = (Map)list.get(i); System.out.println(map.get("wordID")); System.out.println(map.get("word")); }
Parameters
query - - select statement
Returns:
List of Map objects
Ich glaube, ich bin falsch in der Annahme, dass das Code-Tag Zeilenumbrüche verarbeiten würde. Wie lassen sich Codebeispiele in Javadoc-Kommentaren am besten formatieren?
Es fiel mir wirklich schwer, ein bestimmtes Codebeispiel in einen Javadoc-Kommentar aufzunehmen. Ich würde diesen gerne teilen.
Bitte beachten Sie Folgendes:
<code>
Tags, um zu verhindern, dass die geschweiften Klammern interpretiert werden{@code ...}
-Tags, um die in der Ausgabe enthaltenen Generika zu erhalten@Override
via "{@literal @}Override
", da der Javadoc-Generator dort "kippt", da das @ direkt nach einer sich öffnenden geschweiften Klammer verläuft{@code
und{@literal
, um Innenräume auszugleichen und die Ausrichtung beizubehaltenJavadoc-Code:
wird gedruckt als
quelle
Die Java-Quelle hat viele gute Beispiele dafür. Hier ist ein Beispiel aus dem Kopf von "String.java":
quelle
<pre><blockquote>...</blockquote></pre>
<p><blockquote><pre>
</pre></blockquote></p>
List<String>
. Dafür benutze ich<pre>{@code ... }</pre>
.Fügen Sie Ihren mehrzeiligen Code
<pre></pre>
Tags hinzu.quelle
Sie benötigen die
<pre></pre>
Tags für die Zeilenumbrüche und die{@code ... }
darin enthaltenen für Generika. Aber dann ist es nicht erlaubt, die Öffnungsklammer auf der gleichen Linie wie die zu platzieren<generic>
Tag platziert werden, da dann wieder alles in einer Zeile angezeigt wird.Zeigt in einer Zeile an:
Anzeigen mit Zeilenumbrüchen:
Eine andere seltsame Sache ist, wenn Sie die schließende Klammer von einfügen
{@code
, wird es angezeigt:Ausgabe:
quelle
...
``) umgeben. Sie brauchen<code>
und<pre>
Tags nicht. Ich habe Ihre Antwort in diesem Sinne bearbeitet.<pre/>
wird zum Erhalt von Linien benötigt.{@code
must hat eine eigene Linie<blockquote/>
ist nur zum Einrücken.UPDATE mit JDK8
Die Mindestanforderungen für ordnungsgemäße Codes sind
<pre/>
und{@code}
.ergibt
Und eine optionale Umgebung
<blockquote/>
fügt eine Einkerbung ein.ergibt
Einfügen
<p>
oder umgeben mit<p>
und</p>
gibt Warnungen aus.quelle
Ich konnte gut aussehende HTML-Dateien mit dem folgenden in Code 1 gezeigten Snip-It generieren.
(Code 1)
Code 1 wurde erwartungsgemäß zur generierten Javadoc-HTML-Seite in Abb. 1.
(Abb. 1)
Wenn Sie in NetBeans 7.2 jedoch Alt + Umschalt + F drücken (um die aktuelle Datei neu zu formatieren), wird Code 1 zu Code 2.
(Code 2)
wo die erste
<pre>
ist jetzt auf zwei Zeilen gebrochen. Code 2 erzeugt eine generierte Javadoc-HTML-Datei, wie in Abb. 2 gezeigt.(Abb. 2)
Der Vorschlag von Steve B (Code 3) scheint die besten Ergebnisse zu liefern und bleibt auch nach dem Drücken von Alt + Umschalt + F wie erwartet formatiert.
(Code 3)
Die Verwendung von Code 3 erzeugt die gleiche Javadoc-HTML-Ausgabe wie in Abb. 1 gezeigt.
quelle
Hier sind meine zwei Cent.
Wie die anderen Antworten bereits besagen, sollten Sie
<pre>
</pre>
in Verbindung mit verwenden{@code
}
.Verwenden Sie
pre
und{@code}
<pre>
und</pre>
verhindern Sie, dass Ihr Code in einer Zeile zusammenfällt.{@code
}
verhindert<
, dass>
alles dazwischen verschwindet. Dies ist besonders nützlich, wenn Ihr Code Generika oder Lambda-Ausdrücke enthält.Probleme mit Anmerkungen
Probleme können auftreten, wenn Ihr Codeblock eine Anmerkung enthält. Dies liegt wahrscheinlich daran, dass das
@
Zeichen am Anfang der Javadoc-Zeile als Javadoc-Tag wie@param
oder betrachtet wird@return
. Beispielsweise könnte dieser Code falsch analysiert werden:Der obige Code verschwindet in meinem Fall vollständig.
Um dies zu beheben, darf die Zeile nicht mit einem
@
Zeichen beginnen:Beachten Sie, dass zwischen
@code
und zwei Leerzeichen stehen@Override
, um die Ausrichtung auf die nächsten Zeilen zu gewährleisten. In meinem Fall (mit Apache Netbeans) wird es korrekt gerendert.quelle
Es gibt einen signifikanten Unterschied zwischen
<blockquote><pre>...
und<pre>{@code....
Ersteres lässt die Typdeklarationen in Generika aus, Letzteres behält sie jedoch bei.E.g.: List<MyClass> myObject = null;
zeigt wieList myObject = null;
bei den ersten und wieList<MyClass> myObject = null;
bei der zweitenquelle
Wenn Sie Android-Entwickler sind, können Sie verwenden:
So drucken Sie Ihren Code in Javadoc mit Java-Code.
quelle
Versuchen Sie, "Code" durch "pre" zu ersetzen. Das Pre-Tag in HTML markiert den Text als vorformatiert und alle Zeilenvorschübe und Leerzeichen werden genau so angezeigt, wie Sie sie eingeben.
quelle
Ich habe gerade die Javadoc 1.5-Referenz hier gelesen und nur den Code mit
<
und>
muss darin enthalten sein{@code ...}
. Hier ein einfaches Beispiel:quelle
Ich füge meinen Beispielcode
<pre class="brush: java"></pre>
Tags hinzu und verwende SyntaxHighlighter für veröffentlichte Javadocs. Es schadet der IDE nicht und macht veröffentlichte Codebeispiele schön.quelle
Unter Verwendung von Java SE 1.6 scheinen alle UPPERCASE PRE-Bezeichner der beste Weg zu sein, dies in Javadoc zu tun:
ist der einfachste Weg, dies zu tun.
Ein Beispiel aus einem Javadoc, das ich von einer java.awt.Event-Methode erhalten habe:
Dies erzeugt eine Ausgabe, die genau wie der reguläre Code aussieht, wobei die regulären Code-Abstände und neuen Zeilen intakt sind.
quelle
Zumindest in Visual Studio Code können Sie einen Javadoc-Kommentar zwingen, Zeilenumbrüche zu berücksichtigen, indem Sie ihn in Triple-Backticks einschließen, wie unten dargestellt:
quelle