![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Madonna |
|
|||
![]() Forbidden love... ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 22.1.2009 Где: Москва Репутация: нет Всего: 4 |
Добрый день!
Как создать новый объект типа <T>? Eclipse подчеркивает желтым и говорит Unchecked cast from Object to T. --------------------
Best regards, Madonna |
|||
|
||||
| ivg |
|
||||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
Generics типы проверяются во время компиляции. Информация об этих типах, в общем случае, в рантайме отсутствует. Чтобы создать объект, нужно в рантайме иметь информацию о типе(классе). Самый простой способ - явно указывать класс, объект которого хотим получить
В рантайме получите ClassCastException. Это сообщение отредактировал(а) ivg - 17.5.2009, 13:11 |
||||
|
|||||
| Madonna |
|
|||
![]() Forbidden love... ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 22.1.2009 Где: Москва Репутация: нет Всего: 4 |
И ещё вопрос...
Как в ява реализуются аналоги ref out (C#)? --------------------
Best regards, Madonna |
|||
|
||||
| Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 4 Всего: 10 |
В Жава все передается по ссылкам.
-------------------- |
|||
|
||||
| Madonna |
|
|||
![]() Forbidden love... ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 22.1.2009 Где: Москва Репутация: нет Всего: 4 |
Кроме реализации интерфейса clone(), можно ещё как-нибудь скопировать объект со всеми полями?
Добавлено через 29 секунд типа <T> --------------------
Best regards, Madonna |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Зависит от типа _currunt, если он Object или T, то ничего не будет.
Сериализация, рефлексия. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Madonna |
|
|||
![]() Forbidden love... ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 22.1.2009 Где: Москва Репутация: нет Всего: 4 |
Что проще? Я так понимаю сериализация? Или проще определить Clone()? Как в большинстве случаев в Java решается проблема копирования объектов, (особенно если они обобщенные, состоят из композиций т.е. поля тоже объекты) ? Даже ref нет. У меня везде переприсвоение ссылок. Как так можно жить? Никак не могу понять философию Явы. Это сообщение отредактировал(а) Madonna - 17.5.2009, 23:57 --------------------
Best regards, Madonna |
|||
|
||||
| Madonna |
|
||||
![]() Forbidden love... ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 22.1.2009 Где: Москва Репутация: нет Всего: 4 |
Объясните пожалуйста эту конструкцию, у меня оно не работает, без исключений. Оо. >... если клонировать объект, то все ссылки на другие объекты, которые он содержит, останутся теми же самыми? Иначе говоря, >инкапсулированные объекты не клонируются. Чего-то я в этой жизни не понимаю. В Java считается хорошим тоном реализовывать метод Clone? При сериализации объект копируется со всеми взаимосвязями? Можно ли создать, допустим внутренний, класс который будет реализовывать интерфейс Cloneable<T> если поля не объекты? И ещё один вопрос. Про интерфейсы, как осуществляется доступ через интерфейс к методом класса, скрывая поля (я так понимаю поля private)? Как интерфейсы помогают скрыть реализацию? ЗЫ Спасибо за внимание. Это сообщение отредактировал(а) Madonna - 18.5.2009, 01:35 --------------------
Best regards, Madonna |
||||
|
|||||
| LSD |
|
||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
По соотношению скорость+потребление памяти лучшие результаты даст clone(), затем идет рефлексия, затем сериализация. По простоте реализации на первом месте сериализация, потом идет clone(). Преимущество рефлексии состоит в том, что она требует только наличия конструктора без аргументов (модификации классов не требуется). Нет, clone() реализуется если в нем есть необходимость. Да и в это есть еще одна проблема, все связанные объекты должны быть сериализуемы.
Не вижу никаких проблем с внутренним классом, независимо от типа его полей. Это уже не имеет отношения непосредственно к Java, это уже из области концепций ООП.
Интерфейс (объектно-ориентированное программирование) Добавлено через 29 секунд
Что за ошибка? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||
|
|||||||
| Madonna |
|
|||
![]() Forbidden love... ![]() Профиль Группа: Участник Сообщений: 107 Регистрация: 22.1.2009 Где: Москва Репутация: нет Всего: 4 |
LSD, спасибо за развернутый ответ.
Это сообщение отредактировал(а) Madonna - 19.5.2009, 22:02 --------------------
Best regards, Madonna |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |