Описание тега bounded-wildcard

Bounded wildcard is a type argument of the form "? extends T" or "? super T". Bounded wildcards are a feature of generics in the Java language. These type arguments represent some unknown type, with either an upper or lower bound.
3 ответа

Почему мы можем создать экземпляр Pair<T>, но не можем с Pair<?>

Так почему же мы можем создать экземпляр Pair, но не можем создать экземпляр Pair Pair&lt;T&gt; p=new Pair&lt;T&gt;(); В.С. Pair&lt;?&gt; p=new Pair&lt;?&gt;(); я знаю это &lt;?&gt; значит неизвестный тип -> &lt;? extends Object&gt; но не &lt;T&gt; …
1 ответ

Невозможно создать аннотацию с несколькими связанными аргументами универсального класса

Я пытаюсь создать аннотацию, которая может принимать несколько классов в качестве входных данных. Типичное использование будет @Prerequisites{FirstPrerequisite.class, SecondPrerequisite.class} Для этого я могу создать аннотацию, как показано ниже @R…
11 июл '14 в 04:09
2 ответа

Получение подтипа из <? расширяет животных>

Существует существующий Set&lt;Trump&gt; который передается другой функции, которая принимает Set&lt;? extends Politician&gt; в качестве аргумента. При условии Set&lt;? extends Politician&gt; будет содержать либо Politician Объект или Trump Только о…
14 ноя '16 в 18:38
1 ответ

Почему я получаю связанную ошибку несоответствия при вызове Enum.valueOf() с использованием подстановочного знака

Я пытаюсь позвонить Enum&lt;E&gt; статический метод класса valueOf() но я получил ошибку компиляции. Пожалуйста, посмотрите на фрагмент кода ниже. public void hello(Class&lt;? extends Enum&lt;?&gt;&gt; q){ Object o= Enum.valueOf(q,"hello"); } Intell…
29 дек '15 в 18:02
2 ответа

Collections.sort универсальный метод подписи

Внутри java.util.Collections у нас есть подпись метода ниже public static &lt;T&gt; void sort(List&lt;T&gt; list, Comparator&lt;? super T&gt; c) Я не понимаю, почему можно было бы указать Comparator&lt;? super T&gt; вместо Comparator&lt;T&gt; Какие …
04 авг '18 в 04:27
0 ответов

Получить атрибут множественного числа из корневого параметра, который использует ограниченный верхним символом подстановки в критериях API?

У меня есть следующая иерархия сущностей: @Entity public abstract class AbstractEntity { ... @OneToMany private List&lt;Tag&gt; tags; ... } @Entity public class Entity1 extends AbstractEntity { ... } @Entity public class Entity2 extends AbstractEnti…
12 окт '17 в 14:48
0 ответов

Использование Upperbound и LowerBound в генериках

Я перебирал Upperbound и LowerBound в общих чертах и ​​мог видеть, что написано, что мы должны использовать верхнюю границу, когда мы хотим получить значение, и нижнюю границу, когда нам нужно поставить. Я сомневаюсь: Почему мы не можем сделать это …
16 ноя '17 в 05:35
6 ответов

Неограниченные символы подстановки в Java

Есть ли когда-нибудь разница между неограниченным символом подстановки, например &lt;?&gt; и ограниченный шаблон, чья граница Objectнапример, &lt;? extends Object&gt;? Я помню, как где-то читал, что в ранних версиях дженериков была разница, но я бол…
06 янв '10 в 20:33
2 ответа

Создание объекта Comparator для сортировки универсального списка<? расширяет T> используя Collections.sort()

Я пытаюсь реализовать универсальный метод утилиты сортировки для списка объектов любого класса, который реализует MyInterface. Для API Java ( http://java.sun.com/javase/6/docs/api/java/util/Collections.html) сигнатура метода Collections.sort() имеет…
3 ответа

Переход от абстрактного общего к не абстрактному необщему

В последнее время я работаю над проектом на Java, который использует универсальный алгоритм поиска. Чтобы сделать сам алгоритм универсальным, я использовал несколько обобщений на всех классах, используемых в алгоритме. Вот все объявления класса / ин…
1 ответ

Общий тип Java, преобразованный в Scala, не принимает сам суперкласс

Я пишу рамки. Интерфейсы написаны и скомпилированы в коде Java. Клиент использует Scala и эти интерфейсы. Вот пример интерфейса. public interface Context { MyComponent&lt;? extends File&gt; getComponent(); } Теперь мой Scala-код использует интерфейс…
2 ответа

Java Generics Curiosity

У меня есть интерфейс A, какой класс B реализует. Следующий универсальный метод работает public static &lt;T, U extends T&gt; List&lt;T&gt; listFactory(Collection&lt;U&gt; source) { return new ArrayList&lt;T&gt;(source); } но public static &lt;T&gt;…
03 окт '09 в 19:00
3 ответа

Использование "супер" с "?" на Яве

Я пытаюсь прочитать и понять некоторый код Java. Вот: protected LoadTarget&lt;? super PopulationLoadContext&gt; createTarget(PopulationLoadContext context) { return createTransactionalTargetGroup(RiskScoresTables.All_Tables); } Что это &lt;? super P…
24 июл '13 в 22:30
2 ответа

Как я могу исправить эту ошибку шаблона универсального кода Java?

В этом вопросе у TofuBeer возникли проблемы с созданием обобщенного IterableEnumeration, Ответ пришел от jcrossley3, который указал на эту ссылку http://www.javaspecialists.eu/archive/Issue107.html которая в значительной степени решила проблему. Ест…
07 мар '09 в 01:35
1 ответ

Преобразование ограниченного подстановочного знака в неограниченный подстановочный знак в универсальном типе является ошибкой (X<Y <? Расширяет T >> до X<Y <? >>

Рассмотрим этот пример: private &lt;T&gt; void m(Class&lt;? extends T&gt; k, Set&lt;Class&lt;? extends T&gt;&gt; sk) { Class&lt;?&gt; ku = k; Set&lt;Class&lt;?&gt;&gt; sku = sk; // &lt;-- Type mismatch: cannot convert from // Set&lt;Class&lt;? exten…
2 ответа

Java подстановочный знак нижней границы

Почему список в основном методе ниже компилируется? class Breakfast { } class Drink extends Breakfast { } class Juice extends Drink { } class Food extends Breakfast { } class Bread extends Food { } public static void main(String[] args) { Object obj…
04 сен '18 в 16:56
2 ответа

Подстановочные знаки Java по умолчанию равны java.lang.Object вместо верхней границы

Учитывая код abstract class Base&lt;Thistype extends Base&gt; { public void addOnSomethingListener(Consumer&lt;? super Thistype&gt; action) {} public void foo() { System.out.println("foo"); } } class Simple&lt;Thistype extends Simple&gt; extends Bas…
24 май '17 в 20:32
3 ответа

Что-то не так с вложенной инициализацией ArrayList?

Рассмотрим следующие классы: class A{ } class B extends A{ } Как мы знаем, это прекрасно компилируется: List&lt;? extends A&gt; xx = new ArrayList&lt;B&gt;(); List&lt;? extends List&lt;? extends A&gt;&gt; xy = new ArrayList&lt;List&lt;? extends A&gt…
20 мар '18 в 17:22
2 ответа

Java вложенный универсальный тип

Почему нужно использовать универсальный тип Map&lt;?,&nbsp;?&nbsp;extends&nbsp;List&lt;?&gt;&gt; вместо простого Map&lt;?,&nbsp;List&lt;?&gt;&gt; для следующих test() метод? public static void main(String[] args) { Map&lt;Integer, List&lt;String&gt;…
2 ответа

Создание нового универсального объекта с подстановочным знаком

Пожалуйста, объясните этот универсальный код ошибки подстановки: //no compile time error. List&lt;? extends Number&gt; x = new ArrayList&lt;&gt;(); //compile time error. List&lt;? extends Number&gt; x = new ArrayList&lt;? extends Number&gt;();
05 фев '12 в 05:25