Вопросы по теме 'bounded-wildcard'
Список расширяет MyType ›
У меня есть вопрос о дженериках по Java. Я объявил общий список:
List<? extends MyType> listOfMyType;
Затем каким-то способом я пытаюсь создать экземпляр и добавить элементы в этот список:
listOfMyType = new...
59533 просмотров
schedule
19.03.2024
Ошибки компилятора с ограниченными подстановочными знаками 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 просмотров
schedule
07.01.2023
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 просмотров
schedule
21.01.2023
При использовании параметра ограниченного типа или типа интерфейса напрямую
Если вам нужно передать аргумент типа интерфейса методу, вы можете использовать два импл.
Используйте параметр ограниченного типа:
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