Sobes.tech
Назад к вопросам
Senior
7

Как модифицировать сигнатуру метода, чтобы он принимал List<Integer>, List<Long>, List<Double> (все наследники Number)?

Компании, где спрашивали
платформа офд

Ответ от нейросети

sobes.tech AI

Чтобы метод принимал списки с элементами любых наследников класса Number (например, Integer, Long, Double), можно использовать дженерики с верхней границей (upper bounded wildcard):

public void processNumbers(List<? extends Number> numbers) {
    for (Number num : numbers) {
        System.out.println(num.doubleValue());
    }
}

Здесь List<? extends Number> означает, что метод принимает список элементов любого типа, который является наследником Number. Однако стоит помнить, что с таким параметром нельзя добавлять элементы в список внутри метода, так как тип неизвестен точно.