|
9 / 9 / 2
Регистрация: 25.11.2012
Сообщений: 115
|
|||||||||||
Магия Java или объясните, почему так23.01.2017, 20:18. Показов 693. Ответов 2
Метки нет (Все метки)
Здравствуйте, в процессе разработки, подбирая различный способы обработки данных с приведением типов, наткнулся на одну занимательную ситуацию.
1 вопрос: Кликните здесь для просмотра всего текста
Представьте, что есть код:
Хотел задать еще один вопрос, но не получилось воспроизвести условия (удалил исходные данные). Была ситуация (тоже с использованием generic), когда код наподобие этого: Кликните здесь для просмотра всего текста
все-таки вылетал с ClassCastException. Но исключение не отлавливалось вышеуказанным блоком catch. Сначала проходил return, а потом программа вылетала с ClassCastException в классе Main. Сейчас при попытке воспоризвести эту ситуацию, я все равно получил "Hello" в консоль. Я в Java джуниор, поэтому, предполагаю, что просто чего-то недопонимаю и буду благодарен за тактичное объяснение моей глупости =). Я привык работать с generic'ами в C# и ожидал от них похожего поведения в Java, но здесь с ними творится что-то очень странное на мой взгляд. Это не все ситуации, с которыми я столкнулся, но эти наиболее красочно описывают мое недоумение. Объясните, пожалуйста, поведение generic'ов в Java. Учебники и гугл не помогли =)
0
|
|||||||||||
| 23.01.2017, 20:18 | |
|
Ответы с готовыми решениями:
2
Объясните почему так Объясните почему так Объясните почему так |
|
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
|
|
| 23.01.2017, 22:00 | |
|
fadeinmad, В строчке 10 не происходит каст, метод принт берет Object и вызывает на нем .toString.
Если бы ты написал Integer x = o.getVal(o) - тогда был бы exception. Типы в дженериках обрезаются в процессе компиляции, поэтому если достаются просто объекты проблем нет, они проявляются при приведении типов.
3
|
|
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 23.01.2017, 22:12 | |
|
2
|
|
| 23.01.2017, 22:12 | |
|
Помогаю со студенческими работами здесь
3
Объясните почему так
Объясните, почему так происходит сериализация- объясните, почему так? Объясните почему так происходит Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|