Hi Leute
Beim Testen der VarArgs bin ich über folgendes Problem gestolpert:
Untenstehender Code meldet
[WR]"The method varArg(char[]) is ambiguous for the type MethodenmitVarargs"[/WR]
Die beiden Signaturen unterscheiden sich und wenn ich anstelle von char ein boolean Feld nehme funktioniert das auch.
EDIT: Hab noch ein wenig herumprobiert. Es sieht so aus, als würde JAVA INT und CHAR in diesem Fall nicht unterscheiden, denn auch wenn ich weitere int Parameter in der Methode einfüge, ändert sich nichts am Aufruf mit den beiden INT. Normalerweise würde man erwarten, dass der Aufruf eine Fehlermeldung bringt, weil sich ja die Anzahl der Parameter geändert hat.
Pentalon
Beim Testen der VarArgs bin ich über folgendes Problem gestolpert:
Untenstehender Code meldet
[WR]"The method varArg(char[]) is ambiguous for the type MethodenmitVarargs"[/WR]
Die beiden Signaturen unterscheiden sich und wenn ich anstelle von char ein boolean Feld nehme funktioniert das auch.
Java:
public class MethodenmitVarargs {
public void varArg(char... c) {
System.out.println("VarArgs alleine ");
for(char x : c)
System.out.print(x);
System.out.println();
}
public void varArg(int a, int b, char... c) {
System.out.println("VarArgs mit Int "+a+" "+b);
for(char x : c)
System.out.print(x);
System.out.println();
}
public static void main(String[] args) {
MethodenmitVarargs mv = new MethodenmitVarargs();
mv.varArg('T','e','s','t','-','t','e','s','t');
mv.varArg(1, 2, 'T','e','s','t','s','t','r','i','n','g');
}
}
EDIT: Hab noch ein wenig herumprobiert. Es sieht so aus, als würde JAVA INT und CHAR in diesem Fall nicht unterscheiden, denn auch wenn ich weitere int Parameter in der Methode einfüge, ändert sich nichts am Aufruf mit den beiden INT. Normalerweise würde man erwarten, dass der Aufruf eine Fehlermeldung bringt, weil sich ja die Anzahl der Parameter geändert hat.
Pentalon
Zuletzt bearbeitet: