Witam,
Wstawiłem dwie wersje kodu. Pierwsza kompiluje się i działa, natomiast druga nie kompiluje się. Nie mam pojęcia dlaczego. Byłby mi ktoś w stanie wyjaśnić skąd bierze się błąd w drugim kodzie? Różnica pomiędzy tymi kodami znajduje się tylko w typie jednego argumentu (char zmienione na Character). Niedziałający kod przy kompilacji wyrzuca błąd o następującej treści: "Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method f(float, Character[]) is ambiguous for the type StaticTest".
Kod pierszy (działający):
public class StaticTest
{
static void f(float i, char... x)
{
System.out.println("1");
}
static void f(char... c)
{
System.out.println("2");
}
public static void main(String[] args)
{
f(1, 'a');
f('a', 'b');
}
}
Kod drugi (niedziałający):
public class StaticTest
{
static void f(float i, Character... x)
{
System.out.println("1");
}
static void f(Character... c)
{
System.out.println("2");
}
public static void main(String[] args)
{
f(1, 'a');
f('a', 'b');
}
}