generics ×11
Создан 09.01.2025
0
голоса
2
ответов
3
просмотров
Вывод типа с помощью рефлексии для лямбд в Java 8

Заголовок: Как получить возвращаемый тип лямбда-функции с использованием рефлексии в Java 8?

Я экспериментировал с новыми лямбда-выражениями в Java 8 и пытаюсь выяснить, как с помощью рефлексии узнать возвращаемый тип класса лямбда-функции. Особенно меня интересуют случаи, когда лямбда реализует...

5
голоса
4
ответов
14
просмотров
Возможная загрязнение кучи через параметр varargs

Я понимаю, что эта проблема возникает в Java 7 при использовании varargs с обобщенными типами.

Но у меня вопрос…

Что конкретно подразумевает Eclipse, когда говорит, что "его использование может потенциально загрязнить кучу"?

И как новая аннотация @SafeVarargs предотвращает это?

7
голоса
5
ответов
25
просмотров
Как сделать возвращаемый тип метода обобщённым?

Проблема с использованием обобщений в классе Animal

У меня есть класс Animal, который представляет собой животное и позволяет каждому животному иметь много друзей. У меня есть подкласы, такие как Dog, Duck, Mouse и т.д., которые добавляют специфическое поведение, например, методы...

7
голоса
5
ответов
39
просмотров
Как решить проблемы с предупреждениями о небезопасном приведении типов?

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

Я получаю предупреждение в Eclipse следующего вида:

Безопасность типов: Непроверенное приведение из Object в HashMap

Это связано с вызовом API, над которым у меня нет контроля, которое возвращает объект типа Object:

HashMap...
8
голоса
5
ответов
39
просмотров
Что такое «сырые типы» и почему их не следует использовать?

Вопросы:

Что такое "сырой тип" (raw types) в Java, и почему я часто слышу, что их не следует использовать в новом коде? Какова альтернатива, если мы не можем использовать сырые типы, и в чем преимущество этих альтернатив?

6
голоса
5
ответов
32
просмотров
Получить обобщённый тип класса во время выполнения

Вопрос: Как мне добиться этого?

Я создал обобщенный класс GenericClass, и сейчас у меня возникла проблема с тем, как вернуть тип параметра типа T. Вот код, который у меня есть:

public class GenericClass
{
    public Type getMyType()
    {
        // Как мне вернуть тип T?
   ...
10
голоса
5
ответов
40
просмотров
Разница между <? super T> и <? extends T> в Java

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

public class GenSet {
    private E a[];

    public GenSet() {
        a = new E[INITIAL_ARRAY_LENGTH]; // Ошибка: создание массива с...
9
голоса
5
ответов
29
просмотров
Как получить экземпляр класса обобщенного типа T?

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

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