Suppose I have this:
/** * 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"); } If I run this, I get:
Single word: hello Single word: world Multiple words: helloworld This proves that there is nothing wrong in defining a method with String and an overload with String....
When I mouse-over testJavadoc(), this is the Javadoc I see:
void testJavadoc() @SuppressWarnings(value={"unused"}) say(String) Clicking on say(String) brings me to the Javadoc for the first method without vararg.
If I remove say(String) method, then the Javadoc works fine.
I'm using eclipse neon 3 (4.6.3). Is this supposed to be the correct behavior?

{@link #say(String[])}works perfectly in the popup javadoc window, but it does not convey that there is a vararg parameter