Пакетная вставка в Sybase IQ

Как указано выше, список не может быть дифференцирован между List<Object> и List<String> или List<Integer>.

Я решил это сообщение об ошибке для аналогичной проблемы:

List<String> strList = (List<String>) someFunction();
String s = strList.get(0);

со следующим:

List<?> strList = (List<?>) someFunction();
String s = (String) strList.get(0);

Объяснение: Преобразование первого типа подтверждает, что объект является списком, не заботясь о типах, находящихся внутри (поскольку мы не можем проверить внутренние типы на уровне списка). Второе преобразование теперь требуется, потому что компилятор знает, что List содержит какие-то объекты. Это проверяет тип каждого объекта в Списке по мере его доступа.

0
задан Tom 18 March 2019 в 14:38
поделиться