Вопросы по теме 'bounded-wildcard'

Что означает List ‹?› В java-дженериках?
Что означает List<?> , означает ли это просто список объектов неопределенного типа? Поиск в Google строки <?> ничего полезного не возвращает (:
44098 просмотров
schedule 18.11.2021

Generic: ArrayList из? Расширяет ISomeInterface в Java
У меня проблемы со следующим кодом. public ArrayList<? extends IEvent> getEventsByDateRange(DateTime minStartTime, DateTime minEndTime) { ArrayList<? extends IEvent> returnedEvents = new ArrayList<GoogleEvent>();...
2006 просмотров
schedule 02.10.2021

Эквивалент .NET для ограниченного подстановочного знака Java (IInterf ‹?›)?
Я застрял, пытаясь перевести некоторый Java-код, который использует (ограниченные) обобщенные символы подстановки, на C #. Моя проблема в том, что Java, похоже, позволяет универсальному типу быть как ковариантным, так и контравариантным при...
564 просмотров

java.util.Comparator.naturalOrder принимает ‹T extends Comparable‹? super T ›› и возвращает компаратор ‹T› - почему?
(Если это дубликат, укажите мне правильный ответ! Я просмотрел и прочитал несколько (> 5) связанных вопросов, но ни один из них не попал в точку. Также посмотрел FAQ по Generics и другие источники ...) Очевидно, правильная практика заключается в...
3602 просмотров

Java Generics: множественное наследование в параметрах ограниченного типа ‹T extends A & I›
Я собираюсь создать фабрику, которая создает объекты определенного типа T, который расширяет определенный класс A и другой интерфейс I. Однако T не должен быть известен. Вот минимальные декларации: public class A { } public interface I { }...
16876 просмотров
schedule 12.03.2022

В чем разница между ограниченными подстановочными знаками и параметрами типа?
Есть ли разница между <N extends Number> Collection<N> getThatCollection(Class<N> type) а также Collection<? extends Number> getThatCollection(Class<? extends Number>)
5350 просмотров

Разница между экзистенциальными типами Scala и подстановочными знаками Java на примере?
Немного более конкретный, чем вопрос о переполнении стека Что такое экзистенциальный тип? , в чем разница между экзистенциальными типами в Scala и подстановочными знаками в Java, желательно на каком-нибудь иллюстративном примере? Во всем,...
7108 просмотров

Общие методы Java: super нельзя использовать?
Итак, у меня есть этот метод: protected void collectSelectedItems(ListSelectionModel lsm, Collection<? super MyItemClass> result) { for (int i : GUI.getSelectionIndices(lsm)) { result.add(getItemByDisplayIndex(i));...
6661 просмотров
schedule 26.06.2022

Подстановочный знак с нижней границей не проверяется на соответствие параметру типа с верхней границей
Интересно, почему этот фрагмент кода успешно компилируется? Исходный код: abstract class A<K extends Number> { public abstract <M> A<? super M> useMe(A<? super M> k); } Компилировано успешно Как это...
210 просмотров
schedule 30.06.2022

Странное поведение подстановочных знаков при вызове метода
Я просматривал тему с подстановочными знаками в Java, где застрял в этом коде ниже. static <T> void type(List<? super T> list){ //... } static <T> void type2(List<? extends T> list){ //... } Если...
96 просмотров

Почему это назначение с использованием подстановочных знаков допустимо в Java?
Большинство вопросов о подстановочных знаках хотят знать, почему что-то разумное отклоняется компилятором. Мой вопрос наоборот. Почему следующая программа принимается компилятором? void test(List<? extends Number> g1, List<? extends...
114 просмотров

Почему метод getInterfaces() java.lang.Class возвращает Class‹?›[] а не Class‹? супер Т›[]?
(Чтобы прояснить вопрос, «T» относится к параметру типа, объявленному в классе) В качестве примера рассмотрим следующее приложение: public class TestClass { interface InterfaceA{} interface InterfaceB{} interface InterfaceC{}...
2379 просмотров
schedule 01.09.2022

Почему тернарному оператору не нравятся универсальные типы с ограниченными подстановочными знаками?
Следующий класс определяет два метода, оба из которых интуитивно имеют одинаковую функциональность. Каждая функция вызывается с двумя списками типа List<? super Integer> и логическим значением, указывающим, какой из этих списков должен быть...
1238 просмотров

Ограниченные подстановочные знаки Java Generics
Это довольно надуманный пример, который я делаю для изучения потоков Java, но, как мне кажется, застрял в общей проблеме с подстановочными знаками. Мой код ниже. Я пытаюсь прочитать каждый объект Employee из списка, применить функцию, получить...
77 просмотров
schedule 08.09.2022

Ограниченный подстановочный знак Java
Мне нужно определить общий класс, а параметр типа должен быть перечислением. Я думаю, это должно выглядеть примерно так public class <T> MyClass<T extends Enum<T>> { } Но я не могу понять точный синтаксис. Я должен...
137 просмотров
schedule 21.12.2022

Создание нового универсального объекта с подстановочным знаком
Пожалуйста, объясните эту общую ошибку времени компиляции подстановочного знака кода: //no compile time error. List<? extends Number> x = new ArrayList<>(); //compile time error. List<? extends Number> x = new ArrayList<?...
3622 просмотров
schedule 24.01.2023

Общий с нижним подстановочным знаком ‹? супер собака›
class Animal{} class Dog extends Animal{} class Cat extends Animal{} public class Mixer<A extends Animal>{ public <C extends Cat> Mixer<? super Dog> useMe(A a, C c){ //return new Mixer<Object>();//KO return...
295 просмотров
schedule 27.09.2023

Почему нельзя назначить I ‹? расширяет Type› до ‹Type›?
Следующие утверждения: URLClassLoader ucl = (URLClassLoader) ClassLoader.getSystemClassLoader(); Class<URLClassLoader> uclc = ucl.getClass(); сбой с ошибкой: Type mismatch: cannot convert from Class<capture#2-of ? extends...
1795 просмотров

Как сказать Карта класса‹?› перечислить‹Класс› в Java?
Скажем, у меня есть HashMap<?, List<?>> map = new HashMap<>(); map.put(String.class, new ArrayList<Long>()); Следующий код будет скомпилирован. Однако я хочу потерпеть неудачу при компиляции, потому что ArrayList не...
1703 просмотров
schedule 05.03.2023

Подпись Java 'reduceLeft' / Аргументы типа с нижней границей
Следующая подпись действительна и обычно используется в Scala: trait Collection[A] { def reduceLeft [B >: A] (f: (B, A) => B): B } Однако, поскольку >: является Scala-эквивалентом super в Java, моей первой идеей преобразовать...
293 просмотров