projectlombok plugin org for example data baeldung java eclipse javadoc

java - plugin - ¿Cómo generar automáticamente comentarios para getter/setter basados en comentarios de campo en Eclipse?



lombok java maven (9)

El complemento JavadocWriter para IntelliJ IDEA dice que hace una "copia inteligente del javadoc desde el campo hasta el acceso". Advertencia: no he probado el complemento y no se ha actualizado en 3 años.

Quiero que Eclipse genere automáticamente los comentarios de Javadoc para mis métodos de obtención y establecimiento basados ​​en los comentarios definidos previamente para los campos. ¿Cómo puedo conseguir esto?

Antecedentes: una política de nuestra empresa es comentar todos los métodos y campos (incluso si tienen nombres que se explican por sí mismos). Así que tengo que hacer un trabajo redundante describiendo los campos y describiendo de nuevo a los captadores / definidores.

Ejemplo:

/** * name of the dynamic strategy */ private String dynName; /** * get the name of the dynamic strategy * @return */ public String getDynName() { return dynName; }

La búsqueda en la web mostró que no soy el único con el problema, pero no pude encontrar ninguna solución. Revisé http://jautodoc.sourceforge.net/ pero parece que no es capaz de hacer esto.


En mi humilde opinión, si los comentarios se pueden generar automáticamente, no agregan mucho valor.
Si llamó a su método getDynamicStrategyName (), no necesitará comentarlo, ya que el nombre contiene toda la información que habría puesto en el comentario.


En realidad, JAutodoc puede generar comentarios para getter / setter basados ​​en comentarios de campo. Tiene que marcar la opción "Crear comentario desde el nombre del elemento", consulte http://jautodoc.sourceforge.net/ para la documentación.


Estoy de acuerdo en que la duplicación de documentación es un problema. ¿Qué hay de documentar la variable privada y luego proporcionar un enlace a esa documentación en los métodos de acceso?

(Obviamente, la siguiente solución es para métodos de acceso muy simples . No desea exponer la documentación de variables privadas en su API, especialmente si su método de acceso hace algo notable).

public class MyBean { /** * The names description */ private String name; /** * @return {@link #name} */ public String getName() { return name; } /** * @param name {@link #name} */ public void setName(String name) { this.name = name; } }

Tenga en cuenta que, si está utilizando Eclipse, es posible que deba habilitar las variables privadas de referencia en su javadoc de la siguiente manera:

  • Haga clic derecho en el proyecto en el Explorador de paquetes y seleccione Propiedades
  • Contraer el nodo del compilador de Java y seleccionar Javadoc
  • Seleccione habilitar la configuración específica del proyecto y en Solo considerar miembros como visibles como: seleccione privado

    Sospecho que el rendimiento de la búsqueda se verá afectado, pero aún no he usado la prueba de cuánto.


  • Finalmente encontré una solución (o al menos una solución) yo mismo. Leí sobre Spoon en SO. Es un procesador de programa Java que permite leer y modificar archivos de origen Java. Incluso se puede utilizar como Eclipse Plugin o Ant / Maven.

    Todo lo que tiene que hacer, es extender el AbstractProcessor, que procesará un método. Si el nombre del método comienza con get / set, busca el campo correspondiente, extrae su comentario y reemplaza o extiende el comentario de los usuarios con él.

    Tengo un pequeño script ant, que toma todas mis fuentes y las procesa.

    Algo integrado en las plantillas de código de eclipses sería, por supuesto, más conveniente, pero por ahora, ¡de esta manera está bien!


    JAutodoc desde la versión 1.6 (1 año después de la pregunta) tiene una nueva opción "[G, S] etter from field comment", que hace exactamente lo que quiere.

    Esta es una característica muy útil. Los comentarios de campo generalmente no se incluyen en el HTML de Javadoc final porque podrían / ​​deberían ser miembros privados (la generación de Javadoc para cada miembro privado tampoco es buena), ¡así que los comentarios se perderían completamente sin él!

    Me pregunto si este hilo Q / A podría haber motivado al autor a implementar esta buena característica.


    Si tuvieras un lenguaje de macros, podrías escribir una función como "abrir una ventana emergente que me permita escribir algún texto, luego genera el captador y el definidor, incluido su javadoc, basado en plantillas".

    Eclipse en realidad no tiene soporte real para un lenguaje de macros de este tipo, pero quizás pueda echar un vistazo a: ¿Existe una Grabadora de macros para Eclipse?

    Si no se muestra reacio a cambiar entre eclipse y otra herramienta, entonces puede probar JEdit (jedit.org) que incluye un poderoso lenguaje de macros de beanshell. De esta manera, puede tener eclipse y jedit abiertos, arrastrar y soltar el archivo que desea procesar de eclipse a jedit, usar la potencia de macro jedit, luego guardar el archivo y finalmente actualizar el archivo dentro de eclipse.

    Es un poco molesto, pero para algunos procesamientos es la forma en que lo he adoptado con éxito.


    Si usa la herramienta de Eclipse para anular / implementar métodos ... desde el menú de origen, hay una opción para generar automáticamente comentarios javadoc. hay plantillas de comentarios que puede modificar en preferencias-> java-> estilo de código -> plantillas de código -> comentarios.


    Yo uso Eclipse Luna 4.4.

    • Elija el menú Window / Preferences , elija Java / Code Style Code Templates / Code Templates . Seleccione Sección Comments / Getters | Setters , pulse el botón Edit...


    • Hay muchas variables existentes para usted, use el botón Insert Variable...

    • Edite el formato de sus comentarios, luego presione el botón Apply , luego presione OK para finalizar.