Ich bereite mich gerade auf eine Certification vor. Da bin ich auf etwas gestoßen, was mir keine ruhe läßt.
... Also, ... wenn ich eine Klasse folgendermassen benutze
public class TestArguments
{
public static void method(Integer int1,Integer int2) { System.out.println("Integer, Integer"); }
public static void method(Short short1,Short short2) { System.out.println("Short, Short"); }
public static void method(Number number1,Number number2) { System.out.println("Number, Number"); }
public static void main(String... args)
{
byte b= 5;
method(b,b);
}
}
... krieg ich als ausgabe: "Number, Number"
soweit so gut ... aber ...
verwende ich aber die neuartigen java 5.0 featers:
public static void method(short... short1) { System.out.println("short..."); }
public static void method(int... short1) { System.out.println("int..."); }
... krieg ich einen Compiler-Error.
"The method method(short[]) is ambiguous for the type TestArguments"
Warum?
Sind die methoden nicht auch, wie hier so schön beschrieben "ambiguous"...?
... Also, ... wenn ich eine Klasse folgendermassen benutze
public class TestArguments
{
public static void method(Integer int1,Integer int2) { System.out.println("Integer, Integer"); }
public static void method(Short short1,Short short2) { System.out.println("Short, Short"); }
public static void method(Number number1,Number number2) { System.out.println("Number, Number"); }
public static void main(String... args)
{
byte b= 5;
method(b,b);
}
}
... krieg ich als ausgabe: "Number, Number"
soweit so gut ... aber ...
verwende ich aber die neuartigen java 5.0 featers:
public static void method(short... short1) { System.out.println("short..."); }
public static void method(int... short1) { System.out.println("int..."); }
... krieg ich einen Compiler-Error.
"The method method(short[]) is ambiguous for the type TestArguments"
Warum?
Sind die methoden nicht auch, wie hier so schön beschrieben "ambiguous"...?