Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 2 / 1
Регистрация: 10.01.2017
Сообщений: 20

WildCards - producer <? extends V>

20.02.2020, 16:56. Показов 857. Ответов 4
Метки java (Все метки)

Студворк — интернет-сервис помощи студентам
Почему producer может принимать null (и только null)?

Принцип PECS мне понятен.

Интересует "техническая сторона"
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.02.2020, 16:56
Ответы с готовыми решениями:

Wildcards 2
Как я понял, создавать коллекцию таким образом бесполезно, т.к нельзя будет добавлять элементы. List&lt;?&gt; list = new...

Проблеммы с Wildcards
AClass - мой абстрактный класс MyI - мой интерфейс public &lt;T extends AClass &amp; MyI&gt; T get(....); - тут не какой ошибки ...

Java wildcards эквивалент в generic type
В java есть такая штука, как wildcards, которая является расширением generic types. Пример с использованием &lt;?&gt; public...

4
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
20.02.2020, 17:04
ты на каком вообще языке разговариваешь?
0
1 / 2 / 1
Регистрация: 10.01.2017
Сообщений: 20
20.02.2020, 17:27  [ТС]
Code
1
2
3
4
5
    private static void test1(List<? extends Dog> test) {
       // test.add(new Object());
        test.add(null); 
        test.get(0);
    }
Почему можно добавить null?

Добавлено через 17 минут
Все разобрался.

null это значение по умолчанию любых ссылочных типов
0
 Аватар для Aviz__
2755 / 2062 / 509
Регистрация: 17.02.2014
Сообщений: 9,491
20.02.2020, 18:21
Цитата Сообщение от Sanaris Посмотреть сообщение
техническая сторона
https://habr.com/ru/company/sberbank/blog/416413/
0
1 / 2 / 1
Регистрация: 10.01.2017
Сообщений: 20
21.02.2020, 09:13  [ТС]
Авиз, эту статью я читал, то там нет объяснения почему можно null.

Там указано, что можно, но почему можно не указано ))

Вот интересный пример на эту тему

Объяснить почему часть не работает.
Почему в методах test1 и test2 происходит такое
Мне он помог кое-что понять до конца


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
public static void main(String[] args) {
        List<Object> objects = new ArrayList<>();
        List<Pet> pets = new ArrayList<>();
        List<Dog> dogs = new ArrayList<Dog>();
        List<SpecialDog> specialDogs = new ArrayList<>();
        dogs.add(new SpecialDog());
        dogs.addAll(specialDogs);
        specialDogs.add(new Dog());
     //   test1(objects);
     //   test1(pets);
        test1(dogs);
        test1(specialDogs);
        test2(objects);
        test2(pets);
     //   test2(dogs);
      //  test2(specialDogs);
 
        List<Number> list1 = new ArrayList<>();
        List<Integer> list2 = new ArrayList<>();
        List<? extends Number> list3 = list2;
        list3.add((Number) Integer.MAX_VALUE);
        List<? super Number> list4 = list2;
        List<? extends Integer> list5;
        List<? super Integer> list6;
    }
    private static void test1(List<? extends Dog> test) { // ничего кроме null закинуть нельзя иначе было бы смешение типов.
        test.add(new Object());
        test.add(new Dog());
        test.add(new SpecialDog());
        test.add(null);
        Dog dog = test.get(0);
    }
    private static void test2(List<? super Pet> test) { // можно закидывать любых наследников от Pet
        Object d = test.get(0);
        test.add(new Dog());
        test.add(new SpecialDog());
        test.add(new Object());
        test.add(new Pet());
    }
    static class Animal {
    }
    static class Pet extends Animal {
    }
    static class Dog extends Pet {
    }
    static class SpecialDog extends Dog {
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.02.2020, 09:13
Помогаю со студенческими работами здесь

Nulls в Producer
Здравствуйте. Прошу помочь, потому как сам уже в душе не я... знаю как это разрешить while (true) { ...

Детерминированный конечный автомат из шаблонов поиска (wildcards) и регулярных выражений
С программным построение автомата для шаблона a*bc*d??e* проблем не возникает. Но с шаблоном, который не оканчивается на звёздочку...

Consumer-Producer на семафорах
Всем добрый день. Есть программа #include &lt;windows.h&gt; #include &lt;stdio.h&gt; #include &quot;iostream&quot; using namespace std; int Sklad = 0; ...

Классическая задача producer\consumer
Базовая задачка по потокам\семафорам. Поставщиц потребитель. Помогите вынести Buffer как отдельный класс. Чтобы он отвечал за переменную...

Создать ролик в ProShow Producer 5.0.3206
кто работал с программой ProShow Producer 5.0.3206, как в нем создать ролик который пере запускался автоматической или типа того?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru