Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javadoc:@version和@since_Java_Documentation_Javadoc - Fatal编程技术网

javadoc:@version和@since

javadoc:@version和@since,java,documentation,javadoc,Java,Documentation,Javadoc,是否有理由将@version和@since作为类的一部分 它们似乎相互排斥 另外,%I%和%G%是什么意思,以及如何设置/使用它们 @version %I%, %G% 我看不出它们是如何相互排斥的。一个用于定义版本,另一个用于描述方法存在的时间。例如: /** * Does Whatever * @version 1.2.3 * @since 1.2.0 * */ public void myMethod() { // ....... } 关于您提到的字符,它们似乎是专有

是否有理由将
@version
@since
作为类的一部分

它们似乎相互排斥

另外,
%I%
%G%
是什么意思,以及如何设置/使用它们

 @version %I%, %G%

我看不出它们是如何相互排斥的。一个用于定义版本,另一个用于描述方法存在的时间。例如:

/**
 * Does Whatever
 * @version 1.2.3
 * @since 1.2.0
 *
 */
public void myMethod() {
    // .......
}

关于您提到的字符,它们似乎是专有的,无论如何,我不知道它们是什么意思。

标签
@version
应该是相关版本或文件的当前版本。
%I%
%G%
语法是源代码管理软件将替换为文件当前版本和文件签出日期的宏


@since
标记应用于定义添加方法、类等的版本。这是您向其他开发人员发出的提示,提示他们只有在针对包的特定版本运行时才应该使用该方法。我将考虑文档中的这些重要的部分,如果你把你的代码作为一个库,供别人使用。

<代码>代码>版本>代码>将被记录到每一个编辑。[1.3.21]

@since
是指自哪一版本将支持此接口等[1.3]
Yuval Adam很有趣,但这不是标准,java文档的目的是每个人都能理解。

在Oracle的一篇文章中解释得很好

@版本
…仅限类和接口

在Java软件中,我们使用@version作为SCCS版本。有关详细信息,请参阅“man sccs get”。共识似乎如下:

%每次编辑和删除文件时,I%都会增加

%G%为年月日

创建文件时,%I%设置为1.1。编辑并删除它时,它将增加到1.2

一些开发者如果觉得日期%G%太令人困惑,就会忽略它(并且一直在这样做),例如,1996年3月4日,即3月4日,而%G%将在3月4日制作,美国以外的人会将其解释为4月3日。某些开发人员仅在需要更精细的解决方案时(由于一天内有多个签入),才包括时间%U%

最清晰的数字日期格式是将日期格式化为第一年,类似于yyyy mm dd,如ISO 8601和其他地方(如)所建议的那样,但这种增强需要来自SCCS

@自
指定将Java名称添加到API规范时的产品版本(如果与实现不同)。例如,如果在Java 2平台标准版API规范1.2版中添加了包、类、接口或成员,请使用:

Javadoc标准doclet显示一个“自”子标题,其文本为字符串参数。该副标题仅出现在生成的文本中,与源文档注释中出现@since标记的位置相对应(Javadoc工具不会将其扩展到层次结构)

(约定曾经是“@自JDK1.2起”,但因为这是Java平台的规范,不是Oracle JDK或SDK的专用规范,所以我们删除了“JDK”。)

引入包时,在包描述及其每个类中指定@since标记。(从技术上讲,向每个类添加@since标记不是必需的,但这是我们的惯例,因为它可以在源代码中实现更高的可见性。)在没有覆盖标记的情况下,@since标记的值将应用于包的每个类和成员

引入类(或接口)时,在其类描述中指定一个@since标记,在成员中不指定@since标记。仅向在类的更高版本中添加的成员添加@since标记。这将最小化@since标记的数量

如果一个成员在以后的版本中从protected更改为public,@since标记将不会更改,即使它现在可以被任何调用方使用,而不仅仅是子类


首先,@since表示版本,而不是日期,因为它是从哪个版本开始提供的。如果我错了,请纠正。Thanks我一直用@since来表示我编写非API代码的日期Thanks很有趣,但java的说法不同。你所建议的是反对Java原则的常见做法吗?是的,
@因为
似乎定义了。请复习这个答案。谢谢你的解释。如果版本是当前版本,则所有类都将包含该#。在这种情况下,@version不是多余的,因为客户和开发人员都知道他/她使用的是哪个版本,我在实际的java api中没有看到@version。ThxSasha:我相信@version在默认情况下是隐藏的,就像@author一样。我只是不认为把它包括在内有什么意义,作为一个开发人员,自然应该知道他从cvs中签出并使用了什么版本,特别是如果标记在项目中的所有类之间共享。我个人从未使用过@version。为了补充Rob的评论,我通常在查看JDK文档时发现它们很有用。曾经有一段时间,我是一个愚蠢的年轻开发人员,在Windows上使用JDK1.4开发我的项目,而部署使用1.3。我花了一上午的时间试图修复缺少方法的异常。你能给我一个例子/链接吗?
%I%是如何在每次编辑和删除文件时递增的?
/**
 * @since 1.2
 */