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


Ошибки компилятора с ограниченными подстановочными знаками Java
Имея следующий код: Stack<Integer> integers = new Stack<Integer>(); Stack<? extends Number> numbers = integers; Number n = numbers.pop(); numbers.push(3); numbers.push(n); Я получаю ошибки компиляции в...
170 просмотров
schedule 20.02.2023

Почему подстановочные знаки нельзя использовать в универсальном объявлении класса и метода?
Декларация такая: class A<X extends Number & List> { } разрешено. В то время как подобное объявление не допускается. class A<? extends Number & List> { } Есть ли какое-то логическое объяснение тому, почему...
186 просмотров

Java Generics — подстановочные знаки
Я новичок в Java и попал в ситуацию, когда очевидно, что я что-то неправильно понимаю в том, как он обрабатывает Generics, но чтение руководств и поиск в stackoverflow не дали (по крайней мере, до сих пор) ясность, кроме того, что я подозреваю Я...
187 просмотров
schedule 12.06.2024

Подстановочный знак с окончательной верхней границей
Class<? extends Integer> будет компилироваться нормально, но Integer является окончательным типом, поэтому нет смысла использовать его в качестве верхней границы (ничто никогда не extend его). Если вы попытаетесь использовать...
681 просмотров
schedule 15.12.2022

Java: помогите мне понять: как использовать методы интерфейса в ограниченном поле подстановочных знаков?
У меня возникли проблемы с пониманием того, почему я могу использовать такие ограниченные подстановочные знаки, если я не могу (кажется) использовать их (обычно типизированные). Если у меня есть подстановочное поле в классе, я не могу использовать...
246 просмотров
schedule 28.08.2022

Где спецификация Java говорит, что List‹T› присваивается List‹? супер Т›?
Предположим, что класс B наследуется от класса A . Ниже приведена легальная Java: List<A> x; List<? super B> y = x; С точки зрения спецификации это означает, что List<A> присваивает List<? super B> . Однако у...
281 просмотров
schedule 01.01.2023

Использование общих подстановочных знаков в возвращаемых параметрах
Использование общих типов подстановочных знаков в возвращаемых параметрах в Java обычно не рекомендуется. Например, «Эффективная Java», пункт 28 гласит: Do not use wildcard types as return types. Rather than providing additional flexibility...
5697 просмотров
schedule 07.09.2022

Ограничение типа ограниченного подстановочного знака в Java только одним уровнем подклассов класса?
Я хотел бы ограничить совместимые типы ввода метода набором определенных подклассов классов. Однако я хотел бы разрешить принятие только первого уровня подклассов. Например, класс «форма» имеет множество подклассов, например. «прямоугольник»,...
68 просмотров
schedule 17.08.2022

Почему я не могу использовать подстановочный знак (?) как тип параметра, поля, локальной переменной или как возвращаемый тип метода?
В документе Oracle о подстановочных знаках в дженериках говорится: Подстановочный знак можно использовать в различных ситуациях: в качестве типа параметра , поля или локальной переменной ; иногда как возвращаемый тип (хотя в практике...
7157 просмотров

При использовании параметра ограниченного типа или типа интерфейса напрямую
Если вам нужно передать аргумент типа интерфейса методу, вы можете использовать два импл. Используйте параметр ограниченного типа: public static <I extends InterfaceObj> void isTrue(boolean expression, I interfaceobj) {...
1519 просмотров
schedule 23.12.2022

Несовместимые типы при использовании подстановочного знака нижней границы
Я не могу понять, почему у меня есть ошибка компиляции для этого кода: private static <T> Consumer<T> f3() { return t -> {}; } private static <T> Consumer<? super T> f4() { return t -> {}; } @Test public...
630 просмотров
schedule 09.02.2023

Ограниченные подстановочные знаки в ссылочных типах
Мне трудно понять следующий код о двух объектах Predicate . Первый использует подстановочный знак с нижней границей, второй — с верхней границей. Predicate<? super String> p1 = s -> s.startsWith("a"); // why can I call startsWith()?...
57 просмотров
schedule 20.02.2024

Как преобразовать Scala List [String] в устаревший список Java List ‹?›
У меня есть устаревший (без изменений) Java-код: //File Foo.java package sof; public interface Foo<T> {} //File Bar.java package sof; public class Bar implements Foo<String> {} //File Holder.java package sof; import...
103 просмотров
schedule 06.05.2023

Можете ли вы ограничить параметр типа ‹T› несколькими определенными классами
Я пишу универсальный класс Bla с параметром типа T . Могу ли я ограничить T , чтобы можно было использовать только те классы, которые я хочу поддерживать? public class Bla<T> { private T foo; private Class<T> fooClazz; }...
101 просмотров
schedule 31.07.2022