2010-09-05 13 views
211

Al intentar crear comentarios de Javadoc a nivel de paquete, ¿cuál es el método preferido? ¿Qué haces?Javadoc: package.html o package-info.java

package-info.java

  • Pros
    • reciente
  • Contras
    • Abuso de una clase - Las clases son para el código, no sólo para los comentarios

package.html

  • Pros
    • extensión HTML significa que no es código
    • resaltado de sintaxis en los editores de texto/IDE de
  • Contras
    • ¿Ninguna?

Para mí, siempre he utilizado Package.html. Pero me pregunto si es la elección correcta.

+42

'package-info.java' puede contener anotaciones [paquete] - no es necesariamente todos los documentos API. –

+46

No calificaría package-info.java como un abuso de una clase. Es un archivo fuente java (tiene una extensión de archivo ".java") pero no es un archivo de clase porque no contiene una declaración de clase. Y, de hecho, no puede contener una declaración de clase porque "package-info" no es un nombre de clase legal. – Scrubbie

+18

Otra razón para usar package-info.java en lugar de package.html podría ser que .java no implica un formato de salida específico de la documentación. Por ejemplo, es posible que desee enviar el javadoc como LaTeX o como un archivo PDF. Dependiendo de la implementación del compilador de javadoc, esto podría causar problemas en el caso .html. – honeyp0t

Respuesta

255

package-info.java: "Este es un archivo nuevo en el JDK 5.0, es preferible y más package.html." - javadoc - The Java API Documentation Generator

Adición: La gran diferencia parece ser anotaciones paquete. Hay un poco más en el camino de razonamiento en 7.4 Package Declarations.

Adición: La función de anotación también se menciona here y here.

Adición: Vea también Declarative Programming in Java: Package-Level Annotations.

+3

¿Alguna razón en particular por la cual es preferible? – TheLQ

+2

@TheLQ: Supongo anotaciones de paquetes, ya que el compilador tiene más información para trabajar; más arriba. – trashgod

+3

Las anotaciones de paquetes son nuevas para mí, y parece una buena razón para package-info.java debido a su alcance. – stacker