generics ×5
Создан 09.01.2025
12
голоса
5
ответов
13
просмотров
Как создать обобщённый массив в Java?

Описание проблемы:

Из-за реализации обобщений в Java невозможно создать массив обобщенного типа напрямую, как показано в нижеследующем коде:

public class GenSet {
    private E a[];

    public GenSet() {
        a = new E[INITIAL_ARRAY_LENGTH]; // Ошибка: создание массива с...
10
голоса
5
ответов
13
просмотров
Разница между <? super T> и <? extends T> в Java

Вопрос о различиях между List и List в Java

Я столкнулся с проблемой при работе с обобщениями в Java и не могу понять разницу между двумя типами списков: List и List.

Я использовал List, но заметил, что не могу добавлять элементы в этот список с помощью метода list.add(e). В то же...

9
голоса
5
ответов
16
просмотров
Является ли List<Собака> подклассом List<Животное>? Почему дженерики в Java не являются неявно полиморфными?

Я немного запутался в том, как дженерики в Java обрабатывают наследование и полиморфизм.

Предположим, у нас есть следующая иерархия:

Животное (родитель)

Собака - Кошка (дочерние классы)

Итак, у меня есть метод doSomething(List animals). Согласно всем правилам наследования и...

9
голоса
5
ответов
10
просмотров
Что такое PECS (Producer Extends Consumer Super)?

Я столкнулся с концепцией PECS (сокращение от Producer extends and Consumer super) во время изучения дженериков в Java.

Может кто-нибудь объяснить, как использовать PECS, чтобы прояснить путаницу между extends и super?

9
голоса
5
ответов
9
просмотров
Как получить экземпляр класса обобщенного типа T?

У меня есть обобщённый класс Foo&lt;T&gt;. В методе этого класса я хочу получить экземпляр типа T, но не могу использовать T.class.

Каков предпочтительный способ обойти эту проблему и получить класс типа T?