如何使用Javadoc @link到枚举值


120

使用Javadoc 1.5,我无法创建指向Enumeration值的@link。

我想做的是创建一个像这样的枚举:

public enum Planet { 

/**
* MERCURY is a fun place.
*/
MERCURY, 

/**
* VENUS is more fun.
*/
VENUS, 

/**
* But nothing beats the Earth.
*/
EARTH,

/**
* Others we know nothing about.
*/ 
OTHERS
}

然后使用类似这样的链接引用Earth的Javadoc:

{@link Planet.EARTH}

我也尝试过这种{@link Planet#EARTH}风格,但无济于事。

有人知道这是否可行吗?

Answers:


196

#风格的作品对我来说:

{@link Planet#EARTH}

关键是该Planet软件包必须被导入,或者Planet必须是完全合格的-即:

{@link com.yourpackage.Planet#EARTH}

正如sfussenegger指出的那样,Eclipse为您处理了导入。
aperkins

谢谢两个答案都有帮助!我确实使用完全合格的参考来使其工作。有时,编译器输出对于确定问题所在并没有真正的帮助……
Christer Fahlgren,2009年

3
如果在类A中定义了枚举并且试图从类B javadoc引用其值之一该怎么办?我没有找到A.Planet#EARTH或A#Planet#EARTH都不能用于OpenJDK 1.6 update 24 javadoc,尽管eclipse知道可以找到具有A.Planet#EARTH样式的声明。
StevoSlavić2012年

不幸的是,如果您有静态的枚举导入,那是行不通的。至少在intellij想法中,除非在包中使用完全限定的枚举名称等,否则无法在javadoc中使用静态导入的枚举
。– dhblah 2015年

6

我正在使用Eclipse进行检查,但是

{@link Planet#EARTH}

样式似乎有效。但是,我通常更喜欢

@see Planet#EARTH

无论如何。不确定Eclipse使用什么生成Javadoc,但是我正在使用JDK6。不过,也许@see可以帮到您。


4
我喜欢,@see但有时您需要特殊情况。例如,我的订单有一种isWithdrawn()方法,我专门说@return true if the status of this order is equal to OrderStatus#WITHDRAWN, false otherwise
corsiKa

2

只要将其导入,您就可以链接它(但是,当执行此操作时,IMO会使导入变得混乱-代码中使用了什么,javadoc中使用了什么?我喜欢只使用完全限定的名称)。

但是,是的,Eclipse可以按标准进行处理

{@link Planet#EARTH}

工作良好。

如果您使用的是Eclipse,则Ctrl + Shift + O(在PC上)或Cmd + Shift + O(在Mac上)会自动调整导入(这意味着如果您没有使用其他导入,则会删除它们,并添加您需要的任何进口)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.