Funkcja przeciążania za pomocą varargs
To się nie skompiluje:
public class Methods
{
public static void method(Integer... i)
{
System.out.print("A");
}
public static void method(int... i)
{
System.out.print("B");
}
public static void main(String args[])
{
method(7);
}
}
To się kompiluje i działa:
public class Methods
{
public static void method(Integer i)
{
System.out.print("A");
}
public static void method(int i)
{
System.out.print("B");
}
public static void main(String args[])
{
method(7);
}
}
Pierwszy i drugi przykład są bardzo podobne. Pierwszy używa varargów, drugi nie. Dlaczego jeden działa, drugi nie. 7 jest prymitywny, więc w obu przypadkach należy wywołać drugą metodę. Czy to normalne zachowanie?
Znalazłem to:Zgłoszenie błędu Przepełnienie stosu