Javadoc重用预定义文本

时间:2015-04-29 14:38:34

标签: javadoc

是否有可能以某种方式创建类似:

/** #define COMMON_NOTE_1="This note I want to re-use in several places" */
int varA; /** variable A (COMMON_NOTE_1) */
int varB; /** variable B (COMMON_NOTE_1) */

有些suggested 3 years ago it may not been possible你知道在现代是否有可能吗?

如果仍然不可能,有人建议使用C预处理器。知道C预处理器是否可以与IntelliJ集成?或者我也很高兴在编译之前自动执行python脚本。我知道Intelli J可以配置为在编译之前运行Ant。如果现成的解决方案我也会接受它。但我不想自己编写/修改ant脚本。

2 个答案:

答案 0 :(得分:3)

所以我找到了一个丑陋且有限的方式。但无论如何,迄今为止最好的事情。 比以前提出的DUMMY变量好很多。 DUMMY变量的主要缺点是你的类和文档中会有DUMMY变量。即使你在代码中吞下凌乱的DUMMY变量,你也不会看到" Note"直接但只链接到它。

更好的方法是使用标记@value。首先创建像DocCommon这样丑陋的类,其中所有音符都将被隐藏。例如:

public class DocCommon {
    public static final String note1 = "Note: This is common note";
    public static final String note2 = "Note: This is common note2";
}

你可以从以下任何地方链接它:

/** A: {@value com.whoever.DocCommon#note1} B*/

然后将直接在文档中显示如下:

A: "Note: This is common note" B

缺点是它会显示引号&#34; &#34 ;.另一个缺点是它不会接受任何HTML标签。例如。放置<br>时,它会在javadoc编译期间抛出错误。所以这不会起作用:

public static final String note1 = "Note: <br> This is common note";

有人有更好的建议吗?我注意到可能还有其他文档工具而不是Javadoc。有关特定支持多行#defines的任何暗示吗?

答案 1 :(得分:2)

您可以执行以下操作:

/** This note I want to re-use in several places */
static final int DUMMY;
...

/** variable A see {@link #DUMMY COMMON_NOTE}. */
int varA; 
/** variable B see {@link #DUMMY COMMON_NOTE}. */
int varB; /** variable B (COMMON_NOTE_1) */

这会在文档中创建一个链接,当按下该链接将导致公共文档。它不会内联显示它。另外,根据普通音符的长度,这可能需要更多的写作而不是重复音符,但它更容易维护。