![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Fieral |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Регистрация: 10.12.2007 Репутация: нет Всего: 1 |
например:
я написал инетфейс MyList<E> extends Cloneable затем написал класс MyListClass<E> implements MyList<E>,Cloneable у которого даже есть метод public Object clone() а теперь я хочу скопировать: MyList<Integer> value;
и тут внезапно выясняется что сделать это нельзя потому что у интерфейса Cloneable вообще нет никаких методов. тоесть придётся писать свой интерфейс MyCloneable с блекджеком и шлюхами в котором этот метод есть, и расширять MyList от него зачем вообще тогда нужен java.lang.Cloneable? Это сообщение отредактировал(а) Fieral - 9.6.2009, 19:10 --------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор. |
|||
|
||||
| Girin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 81 Регистрация: 6.2.2008 Репутация: нет Всего: нет |
Cloneable это интерфейс-маркер, служит гарантией того что в классе реализующем данный интерфейс будет переопределен метод clone(). В классе Object метод clone() является защищенным, т.е. использовать непосредственно его нельзя. Такие интерфейсы еще используются для проверки типа с помощью оператора instanceof
Еще по теме |
|||
|
||||
| Fieral |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Регистрация: 10.12.2007 Репутация: нет Всего: 1 |
ну а почему java.lang.Cloneable не выгдядит так?
Добавлено через 58 секунд это както служит большей гарантией того что в классе реализующем данный интерфейс будет переопределен метод clone() чем:
--------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор. |
||||
|
|||||
| SoulKeeper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 14.1.2007 Где: Ukraine, Lviv. Репутация: 11 Всего: 15 |
Спросите у Sun
|
|||
|
||||
| Fieral |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 250 Регистрация: 10.12.2007 Репутация: нет Всего: 1 |
сначала у меня была версия что логика работы Clonable устроена по аналогии с Serializable:
где класс сериализуем <=> он помечен как Serializable и содержит только Serializable поля но там есть некий внешний сериализатор, а тут? как склонировать класс "спрятанный" за интерфейс? --------------------
Если собака свернулась калачиком, значит будет дождь, а если сидит выпучив глаза, значит у неё запор. |
|||
|
||||
| serger |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 19.6.2007 Где: Ижевск Репутация: 1 Всего: 5 |
Тут мысли:
http://xpoint.ru/forums/programming/java/t...62.xhtml#334230 Тут разжёвано: http://www.uic.rsu.ru/doc/programming/java.../AppendixA.html -------------------- упс! |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Что-то я там не увидел ответа на вопрос: Мы сделали наш класс клонируемым, по контракту мы должны сделать метод clone() - public. Так почему нельзя было добавить clone() в интерфейс, чтобы можно было писать:
Мое личное мнение, что это просто недоработка Sun. Сейчас же добавить этот метод нельзя, т.к. может перестать работать куча старого кода. -------------------- 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. |
|||
|
||||
![]()
|
| Правила форума "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. |