kleine Frage zu java Basics

Boraas

Grünschnabel
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"...?
 
Hi !

Gib mal den ganzen Code an ! In deinem Beispiel ist nirgendwo eine Methode, die ein Short-Array übergeben bekommt.
Welche neuen Features meinst du denn ?

Ambigous bedeutet hier, daß der Compiler deine Methoden nicht unterscheiden kann. Du überlädst sie ja, aber anscheinend zweimal mit den gleichen Parametern ... ?

Frag einfach,

Krösi
 
Zurück