![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Granje |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 20.3.2008 Репутация: нет Всего: нет |
Здравствуйте. Я новичок в Java. Подскажите почему в этом коде возникает ошибка "clone() has protected access in Object"
Как я понимаю EqualsTest наследник Object, значит он наследует метод clone(). Ведь даже в описании clone() в API есть такой пример "x.clone().equals(x) will be true". В теории должно работать, но не работает. |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Должно быть
И, плюс к этому, нужен правильно переопределенный метод equals Это сообщение отредактировал(а) Stolzen - 29.7.2012, 11:11 |
|||
|
||||
Granje |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 20.3.2008 Репутация: нет Всего: нет |
На самом деле я немного затупил. Класс должен называться CloneTest. То есть интересует почему возникает ошибка доступа к методу clone(). Ведь, как я понял, доступ protected это видимость или в том же пакете, или в подклассах. Допуститим полное имя моего класса com.my.test.CloneTest и он же является подклассом Object. И должно работать...
Это констуктор писать... Я что не могу клонировать обьект типа Object? И вообще это писалось чтобы руками попробовать метод clone(), и не должно было быть никаких сложностей. |
||||
|
|||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
в исходник загляни...
метод clone() пустой и к тому же protected он зарезервирован, и ты должен его сам переопределить... для некоторых объектов он определен - например календарь... |
|||
|
||||
Granje |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 20.3.2008 Репутация: нет Всего: нет |
ага, всему виной "ця бусурманська мова", вернее ее не знание). в доках выражение "x.clone().equals(x) will be true" это рекомендация к реализации. Я подумал что он уже реализован и в нем оно уже определено).
Всем спасибо! Пойду дальше грызть гранит Java ![]() |
|||
|
||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: 7 Всего: 8 |
||||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
priam220, не у всех.
для некоторых нужно вызывать тяжелое клонирование (или как там это называется - я уже не помню...). и как я уже говорил, для некоторых объектов этот метод уже определен - java.util.Calendar; |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |