0

Не пойму, почему работает следующий код:

public class Runner {
    public static void printArgCount(Object... args) {
        System.out.println("Object args: " + args.length);
    }
    public static void main(String[ ] args) {
        printArgCount(5, 7); // вывод Object args: 2
    } 
}

Мы передаем в метод несколько примитивных значений типа int, но срабатывает метод, который на вход принимает несколько сложных типов. Почему так?

1 Answers1

0

В параметрах метода printArgCount(5, 7) числа 5 и 7 неявно преобразуются в объекты типа Integer, т.к. в Java для примитивных типов данных существуют их классы-обертки. Как мы помним, все классы в Java унаследованы от базового класса Object.

Dmitrii
  • 2,673