Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Java Типизация

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

000Maks1988

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
 
public class Hi {}
public class Lo extends Hi{}
 
public class Test {
         
                List<Hi> mylist = new ArrayList<>();
                                               
        List <? super Lo> list2 = mylist;
        list2.add(new Lo());
        list2.add(new Hi()); // Ошибка компиляции        
        Hi hi = list2.get(0); //Ошибка компиляции
        Lo lo = list2.get(0); //Ошибка компиляции
        Object o = list2.get(0);
}
                /* Буду рад если ктото сможет обьяснить почему происходит ошибка компиляции */

Всего записей: 2 | Зарегистр. 16-01-2016 | Отправлено: 20:42 19-01-2016
golyshkin



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Все очень просто, массив объявлен как тип содержащий любый объекты наследники первого уровня Lo, а вы туда кладете ниже наследника! Для Ваших целей подойдет вместо SUPER -> EXTENDS

Всего записей: 47 | Зарегистр. 21-02-2006 | Отправлено: 18:45 14-02-2016 | Исправлено: golyshkin, 18:52 14-02-2016
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Java Типизация


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru