как в List<Integer> добавить объект типа String?

Рейтинг: 5Ответов: 1Опубликовано: 11.02.2023

Как в List<Integer> добавить объект типа String?

Возможно, странный вопрос (мне таким кажется). Задали на обучении, предварительно рассказав что в List<Integer> можно добавить только Integer.

Ответы

▲ 6Принят

Тут можно воспользоваться тем, что дженерики в Java появились не сразу и изначально интерфейс лист был без дженерика. И во имя обратной совместимости он доступен. Таким образом вы можете объявить список чисел, потом его записать в переменную с нетипизированным списком (или имеющуюся переменную скастовать). И в уже нетипизированный список компилятор позволит добавить что угодно.

Вот пример компилируемого и работающего кода:

import java.util.ArrayList;
import java.util.List;

public class MyClass {
    public static void main(String args[]) {
      List<Integer> list = new ArrayList<>();
      List listO = list;
      listO.add("test");

      //или просто кастуем к нетипизированному списку
      //((List) list).add("test");

      System.out.println("list = " + list);
    }
}

Выведет:

list = [test]