Java 注释中的 /** 和 /*
两者之间有什么区别
/**
* comment
*
*
*/
和
/*
*
* comment
*
*/
在爪哇?我应该何时使用它们?
两者之间有什么区别
/**
* comment
*
*
*/
和
/*
*
* comment
*
*/
在爪哇?我应该何时使用它们?
第一种形式称为Javadoc。在为代码编写由该工具生成的正式 API 时,可以使用此功能。例如,Java 7 API 页面使用 Javadoc,并由该工具生成。javadoc
您在Javadoc中看到的一些常见元素包括:
@param
:用于指示要传递给方法的参数,以及它们应具有的值
@return
:这用于指示该方法将返回的结果
@throws
:这用于指示方法在特定输入的情况下引发异常或错误
@since
:这用于指示此类或函数在以下版本中可用的最早的 Java 版本:
例如,这里是 Javadoc 的方法:compare
Integer
/**
* Compares two {@code int} values numerically.
* The value returned is identical to what would be returned by:
* <pre>
* Integer.valueOf(x).compareTo(Integer.valueOf(y))
* </pre>
*
* @param x the first {@code int} to compare
* @param y the second {@code int} to compare
* @return the value {@code 0} if {@code x == y};
* a value less than {@code 0} if {@code x < y}; and
* a value greater than {@code 0} if {@code x > y}
* @since 1.7
*/
public static int compare(int x, int y) {
return (x < y) ? -1 : ((x == y) ? 0 : 1);
}
第二种形式是块(多行)注释。如果您希望在注释中包含多行,则可以使用此选项。
我会说你只想谨慎使用后一种形式;也就是说,您不希望使用块注释来使代码负担过重,这些块注释不描述方法/复杂函数应该具有的行为。
由于Javadoc是两者中更具描述性的,并且您可以使用它来生成实际的文档,因此使用Javadoc比简单的块注释更可取。
对于Java编程语言,两者之间没有区别。Java 有两种类型的注释:传统注释 () 和行尾注释 ()。请参阅 Java 语言规范。因此,对于Java编程语言,两者都是传统注释的实例,并且它们都被Java编译器完全相同地对待,即它们被忽略(或者更准确地说:它们被视为空白)。/* ... */
// ...
/* ... */
/** ... */
但是,作为 Java 程序员,您不仅使用 Java 编译器。您使用整个工具链,其中包括编译器,IDE,构建系统等。其中一些工具的解释与Java编译器不同。特别是,注释由 Javadoc 工具解释,该工具包含在 Java 平台中并生成文档。Javadoc 工具将扫描 Java 源文件,并将两者之间的部分解释为文档。/** ... */
/** ... */
这类似于 像 和 这样的标签:如果你包含一个像 或 这样的注释,大多数 IDE 会突出显示这些注释,这样你就不会忘记它们。但对于Java来说,它们只是注释。FIXME
TODO
// TODO: fix this
// FIXME: do that