![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
В чем смысловая разница следующих двух объявлений?
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
Kangaroo |
|
||||
![]() AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 21 Всего: 104 |
Royan,
попробуйте написать:
? - это любой тип, а Object - только Object У меня в продолжение вопрос. А вот тут - в чем разница? Помню где-то читал, но все забывается.. ![]()
Это сообщение отредактировал(а) Kangaroo - 20.2.2008, 12:37 -------------------- Lost.... |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
ArrayList<?> - это неопределенный тип. Из такого листа можно только читать, но не писать. И любой лист можно привести к нему, без кастов и ворнингов.
ArrayList<Object> - это лист Object-ов читать и писать в него можно Object и все что к нему приводится (т.е. все что угодно). Но вот привести список ArrayList<String> к ArrayList<Object> - нельзя (без кастов и ворнингов). -------------------- 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. |
|||
|
||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 3 Всего: 15 |
Ясно спасибо!
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
Kangaroo |
|
|||
![]() AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 21 Всего: 104 |
LSD, а мой вопрос?
![]()
-------------------- Lost.... |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Kangaroo, практически тоже самое, для <? extends Object> это особого смысла не имеет (я так понял, что они идентичны). Такая констукция нужна для вещей подобных:
-------------------- 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. |
|||
|
||||
Kangaroo |
|
|||
![]() AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 21 Всего: 104 |
Тут главное слово практически. Где-то я читал различие. Ну ок - если вспмоню, отпишусь. LSD, спасибо! -------------------- Lost.... |
|||
|
||||
Silwester |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.2.2007 Репутация: нет Всего: нет |
Извиняюсь за возможный оффтоп, но мне лично интересно, а потому не могу не спросить - на мой взгляд generics является неким подобием шаблонов из С++(правда намного более функциональным). Есть ли у кого подобная точка зрения и вообще как на наш великий язык перевести это чудное слово?
|
|||
|
||||
Kangaroo |
|
|||
![]() AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 21 Всего: 104 |
Да! LSD как всегда прав ![]() Да, так оно и есть. Только в Java шаблоны существуют только для проверки во время компиляции, реальных классов для каждого типа не создается. Это непереводимый сленг ![]() -------------------- Lost.... |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Да, лучше не переводить, но если всё же очень тянет, то я бы это перевёл как "обобщения". Только при джавистах не упоминай перевод - не поймут. ![]() -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Silwester |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.2.2007 Репутация: нет Всего: нет |
Да это просто из любопытства.
это я и хотел узнать, спасибо. А что значит что реальных классов для каждого типа не создается? Имеется ввиду то, что этот механизм разработан для выявления ошибок на этапе компиляции и... |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Это значит, что в Си для list<ClassA> и list<ClassB> будет создано два класса (с раздельным кодом классов в памяти). В Java в подобной ситуации будет в памяти лишь один вариант кода класса list<>, но для каждого объекта данные, конечно же, свои. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Silwester |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 23.2.2007 Репутация: нет Всего: нет |
Спасибо, понял.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |