Thursday, May 25, 2006

Overloading with var-args: ambiguous match

package junk;

public class Test8{
public static void print(String title) {
System.out.println("first print");
}
public static void print(String title, String... messages) {
System.out.println("second print");
}
public static void print(String... messages) {
System.out.println("third print");
}
public static void main(String... args)
{
print("Hello");
print("Hello", "Krishna");
print("Hello", new String[]{"Krishna"});
print(new String[]{"Hello", "Krishna"});
}
}

Output:
reference to print is ambiguous, both method print(java.lang.String,java.lang.String...) in junk.Test8 and method print(java.lang.String...) in junk.Test8 match

No comments: