![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Entry_N3 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 446 Регистрация: 8.2.2007 Репутация: нет Всего: нет |
В одном из источников есть следующий вопрос-ответ:
"Given: Integer i = new Integer (42); Long l = new Long (42); Double d = new Double (42.0); Which two expressions evaluate to True? (Choose Two) A. (i ==l) B. (i == d) C. (d == l) D. (i.equals(d)) E. (d.equals(i)) F. (i.equals(42)) Answer: D, E" В классе-оболочки Integer есть public boolean equals(Object obj) { if (obj instanceof Integer) { return value == ((Integer)obj).intValue(); } return false; Ведь ссылка obj в данном случае указывает на объект типа Double, и, следовательно, объект, на который указывает obj, не является экземпляром класса Integer. Т.е. в данном случае (obj instanceof Integer) равно false. Т.е. вариант D не работает. Я проделываю, например D вариант, и у меня false выдается. В чем дело? Правильно ли я рассуждаю? |
|||
|
||||
| hamsterKSU |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 401 Регистрация: 20.10.2006 Где: Украина, Херсон Репутация: 1 Всего: 11 |
взял отсюда В случае D у тебя класс Double нелзя сравнить с Integer т.к. они разного типа. Добавлено @ 16:32 попробуй сделать
Добавлено @ 16:33 cannot cast from Double to Integer |
||||
|
|||||
| Entry_N3 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 446 Регистрация: 8.2.2007 Репутация: нет Всего: нет |
hamsterKSU, я про это же. В ответе D (i.equals(d)) вернет true?
|
|||
|
||||
| nornad |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Почему должно возвращать true? true из equals возвращается тогда, когда объекты эквивалентны. Странно ты рассуждаешь. Если всё ещё не дошло, давай рассмотрим приведённый интовый equals:
-------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||||
|
|||||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
В чем проблема?
Берете компилятор и проверяете. Первые три варианта вообще не скомпилируются, а результат остальных можно посмотреть. -------------------- 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. |
|||
|
||||
| Entry_N3 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 446 Регистрация: 8.2.2007 Репутация: нет Всего: нет |
LSD, я смотрел, у меня false... а вот в источнике, написано, что true! Это меня и смутило.
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
В данном случае компилятор истина в последней инстанции, если он говорит, что это будет true, то значит так оно и есть.
А автор книги или банально ошибся, или имел в виду что-то совсем другое, но не удосужился это объяснить. -------------------- 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. |