Tengo un pequeño ejemplo de código que quiero incluir en el comentario Javadoc para un método.
/**
* -- 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
*/
El problema es que el ejemplo de código aparece en el Javadoc sin saltos de línea, lo que dificulta su lectura.
-- 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
Supongo que me equivoco al suponer que la etiqueta de código manejaría los saltos de línea. ¿Cuál es la mejor manera de formatear ejemplos de código en comentarios Javadoc?
Tuve un momento realmente difícil al incluir un ejemplo de código específico en un comentario de javadoc. Me gustaría compartir este.
Tenga en cuenta lo siguiente:
<code>
etiquetas antiguas para evitar que se interpreten los corchetes{@code ...}
- etiqueta para obtener los genéricos incluidos en la salida@Override
través de "{@literal @}Override
" porque el generador javadoc "se inclina" allí debido al hecho de que el @ va directamente después de una llave de apertura{@code
y{@literal
, para compensar los espacios interiores y mantener la alineacióncódigo javadoc:
se imprime como
fuente
La fuente de Java tiene muchos buenos ejemplos de esto. Aquí hay un ejemplo del jefe de "String.java":
fuente
<pre><blockquote>...</blockquote></pre>
<p><blockquote><pre>
</pre></blockquote></p>
List<String>
. Para eso estoy usando<pre>{@code ... }</pre>
.Adjunte su código multilínea con
<pre></pre>
etiquetas.fuente
Necesita las
<pre></pre>
etiquetas para los saltos de línea y el{@code ... }
interior para los genéricos. Pero entonces no está permitido colocar la llave de apertura en la misma línea que la<generic>
etiqueta, porque entonces todo se mostrará en 1 línea nuevamente.Muestra en una línea:
Pantallas con saltos de línea:
Otra cosa extraña es que cuando pegas la llave de cierre
{@code
, se muestra:Salida:
fuente
...
``). No necesitas<code>
y<pre>
etiquetas. Edité tu respuesta en esta mente.<pre/>
se requiere para preservar líneas.{@code
debe tener su propia línea<blockquote/>
es solo por sangrado.ACTUALIZAR con JDK8
Los requisitos mínimos para los códigos adecuados son
<pre/>
y{@code}
.rendimientos
Y un entorno opcional
<blockquote/>
inserta una sangría.rendimientos
Insertar
<p>
o rodear<p>
y</p>
generar advertencias.fuente
Pude generar archivos HTML atractivos con el siguiente fragmento que se muestra en el Código 1.
(Código 1)
El código 1 se convirtió en la página HTML javadoc generada en la Fig. 1, como se esperaba.
(Figura 1)
Sin embargo, en NetBeans 7.2, si presiona Alt + Shift + F (para formatear el archivo actual), el Código 1 se convierte en el Código 2.
(Código 2)
donde el primero
<pre>
ahora se divide en dos líneas. El código 2 produce el archivo HTML javadoc generado como se muestra en la figura 2.(Figura 2)
La sugerencia de Steve B (Código 3) parece dar los mejores resultados y permanece formateada como se esperaba incluso después de presionar Alt + Shift + F.
(Código 3)
El uso del Código 3 produce la misma salida HTML de javadoc como se muestra en la Fig. 1.
fuente
Aquí están mis dos centavos.
Como ya dicen las otras respuestas, debe usarlas
<pre>
</pre>
en conjunción con{@code
}
.Uso
pre
y{@code}
<pre>
y</pre>
evita que su código se colapse en una línea;{@code
}
previene<
,>
y todo en el medio de desaparecer. Esto es particularmente útil cuando su código contiene genéricos o expresiones lambda.Problemas con anotaciones
Pueden surgir problemas cuando su bloque de código contiene una anotación. Probablemente sea porque cuando el
@
signo aparece al comienzo de la línea Javadoc, se considera una etiqueta Javadoc como@param
o@return
. Por ejemplo, este código podría analizarse incorrectamente:El código anterior desaparecerá por completo en mi caso.
Para solucionar esto, la línea no debe comenzar con un
@
signo:Tenga en cuenta que hay dos espacios entre
@code
y@Override
, para mantener las cosas alineadas con las siguientes líneas. En mi caso (usando Apache Netbeans) se representa correctamente.fuente
Hay una diferencia significativa entre
<blockquote><pre>...
y<pre>{@code....
El primero omitirá las declaraciones de tipo en genéricos, pero el segundo lo mantendrá.E.g.: List<MyClass> myObject = null;
muestra comoList myObject = null;
con los primeros y comoList<MyClass> myObject = null;
con el segundofuente
Si eres desarrollador de Android puedes usar:
Para imprimir bastante su código en Javadoc con código Java.
fuente
Intente reemplazar "código" con "pre". La etiqueta previa en HTML marca el texto como preformateado y todos los avances de línea y espacios aparecerán exactamente a medida que los escribe.
fuente
Acabo de leer la referencia de Javadoc 1.5 aquí , y solo el código con
<
y>
debe estar encerrado dentro{@code ...}
. Aquí un ejemplo simple:fuente
Adjunto mi código de ejemplo con
<pre class="brush: java"></pre>
etiquetas y uso SyntaxHighlighter para javadocs publicados. No perjudica al IDE y hace que los ejemplos de código publicados sean hermosos.fuente
Usando Java SE 1.6, parece que todos los identificadores de MAYÚSCULAS PRE son la mejor manera de hacer esto en Javadoc:
Es la forma más sencilla de hacer esto.
Un ejemplo de un javadoc que obtuve de un método java.awt.Event:
Esto produce una salida que se ve exactamente como el código regular, con espacios de código regulares y nuevas líneas intactas.
fuente
Al menos en Visual Studio Code, puede forzar un comentario Javadoc para que respete los saltos de línea envolviéndolo en triples, como se ve a continuación:
fuente