【问题标题】:How to @link to a Enum Value using Javadoc如何使用 Javadoc @link 到枚举值
【发布时间】:2010-12-04 00:32:07
【问题描述】:

使用 Javadoc 1.5,我无法创建指向枚举值的 @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
}

然后使用如下链接参考地球的 Javadoc:

{@link Planet.EARTH}

我也尝试过{@link Planet#EARTH} 样式,但无济于事。

有人知道这是否可行吗?

【问题讨论】:

    标签: java javadoc


    【解决方案1】:

    # 风格适合我:

    {@link Planet#EARTH}
    

    关键是必须导入Planet包,或者Planet必须是全限定的——即:

    {@link com.yourpackage.Planet#EARTH}
    

    【讨论】:

    • 正如 sfussenegger 所说,Eclipse 会为您处理导入。
    • 感谢这两个答案有帮助!我确实使用完全限定的参考让它工作。有时编译器输出对于确定问题所在并没有真正的帮助......
    • 如果枚举是在 A 类中定义的,并且试图从 B 类 javadoc 中引用其值之一怎么办?我发现 A.Planet#EARTH 和 A#Planet#EARTH 都不适用于 OpenJDK 1.6 update 24 javadoc,尽管 eclipse 知道要找到具有 A.Planet#EARTH 样式的声明。
    • 不幸的是,如果您有枚举的静态导入,这将不起作用。至少在 intellij 的想法中,没有办法在 javadoc 中使用静态导入的枚举,除非您将完全限定的枚举名称与包等一起使用。
    【解决方案2】:

    我正在使用 Eclipse 来检查这个,但是

    {@link Planet#EARTH}
    

    风格似乎有效。但是,我通常更喜欢

    @see Planet#EARTH
    

    无论如何。不确定 Eclipse 使用什么来生成 Javadoc,但我使用的是 JDK6。不过,也许@see 对你有用。

    【讨论】:

    • 我喜欢@see,但有时您需要特殊情况。比如我的订单有一个isWithdrawn()方法,我特意说@return true if the status of this order is equal to OrderStatus#WITHDRAWN, false otherwise
    【解决方案3】:

    只要它被导入,你就可以链接它(但是当你这样做时,IMO 会使导入变得混乱——代码中使用了哪些,javadoc 中使用了哪些?我喜欢只使用完全限定的名称)。

    但是,是的,Eclipse 可以处理这一切并且是标准的

    {@link Planet#EARTH}
    

    工作正常。

    如果您使用 Eclipse,Ctrl + Shift + O(在 PC 上)或 Cmd + Shift + O(在 Mac 上)自动调整您的导入(这意味着如果您有未使用的额外导入,它们将被删除,因为以及添加您需要的任何导入)。

    【讨论】:

      猜你喜欢
      • 2011-09-26
      • 1970-01-01
      • 2014-07-12
      • 2019-04-10
      • 2021-08-02
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 2012-11-05
      相关资源
      最近更新 更多