Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Почему clone() в хешмапе сделан так странно? / 4 сообщений из 4, страница 1 из 1
25.09.2012, 19:30:23
    #37971912
chabapok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему clone() в хешмапе сделан так странно?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
public Object clone() {
        HashMap<K,V> result = null;
        try {
            result = (HashMap<K,V>)super.clone();
        } catch (CloneNotSupportedException e) {
            // assert false;
        }
....



Что за странный стиль? Как вообще так можно приводить, ведь реальный new делается Object-у, который не знает сколько памяти занимают поля хешмапы! И даже если компилятор пропустит это приведение типа, то, как мне кажется, мы обязательно залезем на нераспределенную память.

Зачем так? Что это дает?почему это вообще работает? почему не result=new HashMap<...>() ?
...
Рейтинг: 0 / 0
25.09.2012, 20:18:44
    #37971982
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему clone() в хешмапе сделан так странно?
Вы стебетесь?
...
Рейтинг: 0 / 0
25.09.2012, 21:12:36
    #37972032
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему clone() в хешмапе сделан так странно?
chabapokЧто за странный стиль?

Чем странный?

chabapokКак вообще так можно приводить, ведь реальный new делается Object-у, который не знает сколько памяти занимают поля хешмапы!

Что такое "реальный new" и при чем здесь вообще память?

chabapok И даже если компилятор пропустит это приведение типа, то, как мне кажется, мы обязательно залезем на нераспределенную память.

Проблема в приведении? С памятью, да. Прикольно придумали. В Java всегда так. Чуть что и уже в нераспределенной памяти.


chabapokЗачем так? Что это дает?почему это вообще работает? почему не result=new HashMap<...>() ?
Читать вдумчиво
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html
...
Рейтинг: 0 / 0
25.09.2012, 22:58:34
    #37972129
chabapok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему clone() в хешмапе сделан так странно?
Я не стебусь.

прочитал про метод Object.clone(). Оказывается, это совсем не new Object(), как я думал. Теперь разобрался, спасибо.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Почему clone() в хешмапе сделан так странно? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]