可变参数方法的 Javadoc link

Javadoc link for vararg methods

假设我有这个:

/**
 * Single-word method.
 */
private void say(String word) {
    System.out.println("Single word: " + word);
}

/**
 * Multiple-word method.
 */
private void say(String... words) {
    System.out.print("Multiple words: ");
    for (String word : words) {
        System.out.print(word);
    }
    System.out.println();
}

/**
 * {@link #say(String...)}
 */
@SuppressWarnings("unused")
private void testJavadoc() {
}

public static void main(String[] args) {
    say("hello");
    say("world");
    say("hello", "world");
}

如果我运行这个,我得到:

Single word: hello
Single word: world
Multiple words: helloworld

这证明用String定义方法和用String...重载没有错。

当我将鼠标悬停在 testJavadoc() 上时,这是我看到的 Javadoc:

void testJavadoc()

@SuppressWarnings(value={"unused"})

say(String)

单击 say(String) 将我带到第一个没有可变参数的方法的 Javadoc。

如果我删除 say(String) 方法,那么 Javadoc 工作正常。

我正在使用 eclipse neon 3 (4.6.3)。这应该是正确的行为吗?

这看起来可能是 Eclipse 中的一个错误,因为你是正确的,它应该引用 vararg 方法(我没有 Eclipse,所以无法测试)。

在 IntelliJ 中测试,我可以看到预期的引用。

此外,如果您继续实际生成 JavaDoc,您应该能够看到正确的输出。