1.3 javadoc 输出什么

javadoc 工具将你 Java 程序的源代码作为输入,输出一些包含你程序注释的HTML文件。 每一个类的信息将在独自的HTML文件里。javadoc 也可以输出继承的树形结构和索引。 由于 javadoc 的实现不同,工作也可能不同,你需要检查你的 Java 开发系统的版本等细节,选择合适的 Javadoc 版本。

下面是一个使用说明注释的简单实例。注意每一个注释都在它描述的项目的前面。 在经过 javadoc 处理之后,SquareNum 类的注释将在 SquareNum.html 中找到。

import java.io.*;
 
/**
* 这个类演示了文档注释
* @author sdw
* @version 1.2
*/
public class SquareNum {
   /**
   * This method returns the square of num.
   * This is a multiline description. You can use
   * as many lines as you like.
   * @param num The value to be squared.
   * @return num squared.
   */
   public double square(double num) {
      return num * num;
   }
   /**
   * This method inputs a number from the user.
   * @return The value input as a double.
   * @exception IOException On input error.
   * @see IOException
   */
   public double getNumber() throws IOException {
      InputStreamReader isr = new InputStreamReader(System.in);
      BufferedReader inData = new BufferedReader(isr);
      String str;
      str = inData.readLine();
      return (new Double(str)).doubleValue();
   }
   /**
   * This method demonstrates square().
   * @param args Unused.
   * @return Nothing.
   * @exception IOException On input error.
   * @see IOException
   */
   public static void main(String args[]) throws IOException
   {
      SquareNum ob = new SquareNum();
      double val;
      System.out.println("Enter value to be squared: ");
      val = ob.getNumber();
      val = ob.square(val);
      System.out.println("Squared value is " + val);
   }
}

image

测试时发现一个问题,main函数不能加return注释,去掉就行了

image

生产的文件

image image

2 注意事项

Java 1.5 发行版本中增加的三个特性在文档注释时需要特别小心:泛型、枚举、和注解。 ####2.1 泛型 为泛型或者方法编写文档时,确保要在文档中说明所有类型的参数

/**
 *@param <K> the type of keys maintained by this map
 *@param <V> the type of mapped values

2.2 枚举

为枚举类型编写文档时,要确保在文档中说明常量及类型,还有任何公有的方法。 注意,如果文档注释很短,可以将整个注释放在一行上:

public enum OrchestraSection{
    /** Woodwinds,such as flute,clarinet and oboe. */
    WOODWIND,
    /** Brass instruments,such as french horn and trumpet
    BRASS,
    /** Percussion instruments, such as timpani and cymbals */
    PERCUSSION,
    /** Stringded instruments,such as violin and cello */
    STRING
}

2.3 注解

为注解类型编写文档时,要确保在文档中说明所有成员,以及类型本身。带有名词短语的文档成员,就像是域一样,对于该类型的描述,要使用一个动词短语,说明这种类型的注解时它表示的什么意思。

/**
 *@Retention(RetentionPolicy.RUNTIME)
 *@Target(ElementType.METHOD)
public @interface ExceptionTest {
    Class<? extends Exception> value();

总结:虽然为所有导出的API元素提供文档注释是必要的,但是这样做并非永远就足够了。对于由多个相互关联的类组成的复杂API,通常有必要用一个外部文档来描述该API的总体结构。对于文档注释进行补充。如果有这样的文档,相关的类或者包文档注释就应该包含一个对这个外部文档的链接。 对于所有可导出的API元素来说,使用文档注释应该是被看作是强制性的,要采用一致的风格来遵循标准的约定。在文档注释内部出现任何HTML标签都是允许的,但是HTML元字符必须经过转义。