代码之家  ›  专栏  ›  技术社区  ›  Jai

vararg方法的Javadoc链接

  •  2
  • Jai  · 技术社区  · 7 年前

    假设我有这个:

    /**
     * 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) 这是第一个没有vararg的方法。

    如果我删除 方法,则Javadoc工作正常。

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   karoma    7 年前

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

    在IntelliJ中测试,我可以看到预期的参考。

    更重要的是,如果您继续实际生成JavaDoc,您应该能够看到正确的输出。

    Generated JavaDoc