Вопросы
Как создать обобщённый массив в Java?
Описание проблемы:
Из-за реализации обобщений в Java невозможно создать массив обобщенного типа напрямую, как показано в нижеследующем коде:
public class GenSet {
private E a[];
public GenSet() {
a = new E[INITIAL_ARRAY_LENGTH]; // Ошибка: создание массива с...
Разница между <? super T> и <? extends T> в Java
Вопрос о различиях между List
и List
в Java
Я столкнулся с проблемой при работе с обобщениями в Java и не могу понять разницу между двумя типами списков: List
и List
.
Я использовал List
, но заметил, что не могу добавлять элементы в этот список с помощью метода list.add(e)
. В то же...
Является ли List<Собака> подклассом List<Животное>? Почему дженерики в Java не являются неявно полиморфными?
Я немного запутался в том, как дженерики в Java обрабатывают наследование и полиморфизм.
Предположим, у нас есть следующая иерархия:
Животное (родитель)
Собака - Кошка (дочерние классы)
Итак, у меня есть метод doSomething(List animals)
. Согласно всем правилам наследования и...
Что такое PECS (Producer Extends Consumer Super)?
Я столкнулся с концепцией PECS (сокращение от Producer extends and Consumer super) во время изучения дженериков в Java.
Может кто-нибудь объяснить, как использовать PECS, чтобы прояснить путаницу между extends и super?
Как получить экземпляр класса обобщенного типа T?
У меня есть обобщённый класс Foo<T>
. В методе этого класса я хочу получить экземпляр типа T
, но не могу использовать T.class
.
Каков предпочтительный способ обойти эту проблему и получить класс типа T
?