Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
88 / 86 / 55
Регистрация: 14.11.2015
Сообщений: 1,095
1

Class cast при получении элемента из списка

17.07.2017, 09:15. Показов 377. Ответов 2
Метки нет (Все метки)

Читаю про Generics и возник вопрос.

Почему компилятор не пропускает следующее присвоение:
Java
1
2
3
4
        List listOfStrings = new ArrayList();
        listOfStrings.add("String");
 
        String s = listOfStrings.get(0); //Object to String
По какой причине не сделают так, чтобы в рантайме сравнивались типы и в случае чего просто выкидывалось исключение? Это так много вычислительных ресурсов будет брать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2017, 09:15
Ответы с готовыми решениями:

Cast to Base class from Derived class
Привет, подскажите, надо сделать каст чтобы затем сделать сериализацию а не работает на С#...

Получение элемента из списка List<class>
Здравствуйте подскажите как вывести элемент из списка ( выполнить элегантно задачу не получается )....

При получении списка процессов вылезает ошибка
Здравствуйте, ругается на такой код: System.Diagnostics.Process process =...

Как при получении списка категорий понять, у каких из них есть дочерние?
Как понять при получении списка категорий понять у каких из них есть дочерние..? получаю через...

__________________

Записывайтесь на профессиональные курсы Java-разработчиков
Обучение в Java Mentor с оплатой после трудоустройства
2
183 / 110 / 44
Регистрация: 03.07.2016
Сообщений: 493
17.07.2017, 09:27 2
Ну вобщето стирание типов сделали для обратной совместимости. Если бы их сделали такими жёсткими как в с++ то после выхода java 5 все предыдущие не запустились бы на новой jvm. А по поводу вашего примера, так как лист не параметризирован то компилятор на стадии компиляции не может знать что вы положили лист, и поэтому требует чтобы вы вытаскивали обджект и кастили врукопашную, так же как и делали за времена динозавров.
0
Эксперт Java
4073 / 3807 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
17.07.2017, 12:03 3
Потому что в вашем коде проблема и компилятор сообщает о ней.
Java ведь сделана специально статически-типизированным языком, чтобы компилятор мог ловить подобные проблемы.
Причём в вашем случае, её поправить очень легко, достаточно правильно указать generic-параметры.
Java
1
2
3
4
        List<String> listOfStrings = new ArrayList<>();
        listOfStrings.add("String");
 
        String s = listOfStrings.get(0);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2017, 12:03

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Зацикливание при получении получении сообщения от клиента
Доброго времени суток! Уже выбился из сил... Суть моей проблемы в следующем. Реализую...

Создание списка, печать списка на экран, добавления элемента в начало списка, конец списка
Построить динамическую структуру типа список . Необходимо реализовать следующие процедуры: 1....

Вставка нового элемента в список, удаление элемента из списка, просмотра содержимого списка
очень нужно:tender: 1. Разработать подпрограммы, реализующие основные операции обработки линейного...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.