Описание тега 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<T> p=new Pair<T>(); В.С. Pair<?> p=new Pair<?>(); я знаю это <?> значит неизвестный тип -> <? extends Object> но не <T> …
20 дек '12 в 21:46
1
ответ
Невозможно создать аннотацию с несколькими связанными аргументами универсального класса
Я пытаюсь создать аннотацию, которая может принимать несколько классов в качестве входных данных. Типичное использование будет @Prerequisites{FirstPrerequisite.class, SecondPrerequisite.class} Для этого я могу создать аннотацию, как показано ниже @R…
11 июл '14 в 04:09
2
ответа
Получение подтипа из <? расширяет животных>
Существует существующий Set<Trump> который передается другой функции, которая принимает Set<? extends Politician> в качестве аргумента. При условии Set<? extends Politician> будет содержать либо Politician Объект или Trump Только о…
14 ноя '16 в 18:38
1
ответ
Почему я получаю связанную ошибку несоответствия при вызове Enum.valueOf() с использованием подстановочного знака
Я пытаюсь позвонить Enum<E> статический метод класса valueOf() но я получил ошибку компиляции. Пожалуйста, посмотрите на фрагмент кода ниже. public void hello(Class<? extends Enum<?>> q){ Object o= Enum.valueOf(q,"hello"); } Intell…
29 дек '15 в 18:02
2
ответа
Collections.sort универсальный метод подписи
Внутри java.util.Collections у нас есть подпись метода ниже public static <T> void sort(List<T> list, Comparator<? super T> c) Я не понимаю, почему можно было бы указать Comparator<? super T> вместо Comparator<T> Какие …
04 авг '18 в 04:27
0
ответов
Получить атрибут множественного числа из корневого параметра, который использует ограниченный верхним символом подстановки в критериях API?
У меня есть следующая иерархия сущностей: @Entity public abstract class AbstractEntity { ... @OneToMany private List<Tag> 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
Есть ли когда-нибудь разница между неограниченным символом подстановки, например <?> и ограниченный шаблон, чья граница Objectнапример, <? extends Object>? Я помню, как где-то читал, что в ранних версиях дженериков была разница, но я бол…
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() имеет…
08 окт '09 в 20:23
3
ответа
Переход от абстрактного общего к не абстрактному необщему
В последнее время я работаю над проектом на Java, который использует универсальный алгоритм поиска. Чтобы сделать сам алгоритм универсальным, я использовал несколько обобщений на всех классах, используемых в алгоритме. Вот все объявления класса / ин…
02 фев '14 в 04:28
1
ответ
Общий тип Java, преобразованный в Scala, не принимает сам суперкласс
Я пишу рамки. Интерфейсы написаны и скомпилированы в коде Java. Клиент использует Scala и эти интерфейсы. Вот пример интерфейса. public interface Context { MyComponent<? extends File> getComponent(); } Теперь мой Scala-код использует интерфейс…
22 май '18 в 01:39
2
ответа
Java Generics Curiosity
У меня есть интерфейс A, какой класс B реализует. Следующий универсальный метод работает public static <T, U extends T> List<T> listFactory(Collection<U> source) { return new ArrayList<T>(source); } но public static <T>…
03 окт '09 в 19:00
3
ответа
Использование "супер" с "?" на Яве
Я пытаюсь прочитать и понять некоторый код Java. Вот: protected LoadTarget<? super PopulationLoadContext> createTarget(PopulationLoadContext context) { return createTransactionalTargetGroup(RiskScoresTables.All_Tables); } Что это <? 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 <T> void m(Class<? extends T> k, Set<Class<? extends T>> sk) { Class<?> ku = k; Set<Class<?>> sku = sk; // <-- Type mismatch: cannot convert from // Set<Class<? exten…
05 окт '15 в 22:32
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<Thistype extends Base> { public void addOnSomethingListener(Consumer<? super Thistype> action) {} public void foo() { System.out.println("foo"); } } class Simple<Thistype extends Simple> extends Bas…
24 май '17 в 20:32
3
ответа
Что-то не так с вложенной инициализацией ArrayList?
Рассмотрим следующие классы: class A{ } class B extends A{ } Как мы знаем, это прекрасно компилируется: List<? extends A> xx = new ArrayList<B>(); List<? extends List<? extends A>> xy = new ArrayList<List<? extends A>…
20 мар '18 в 17:22
2
ответа
Java вложенный универсальный тип
Почему нужно использовать универсальный тип Map<?, ? extends List<?>> вместо простого Map<?, List<?>> для следующих test() метод? public static void main(String[] args) { Map<Integer, List<String>…
02 апр '14 в 08:54
2
ответа
Создание нового универсального объекта с подстановочным знаком
Пожалуйста, объясните этот универсальный код ошибки подстановки: //no compile time error. List<? extends Number> x = new ArrayList<>(); //compile time error. List<? extends Number> x = new ArrayList<? extends Number>();
05 фев '12 в 05:25