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

questionAnswers(3)

yourAnswerToTheQuestion