![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| inohodec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 151 Регистрация: 1.12.2004 Репутация: 2 Всего: 2 |
Абалдеть ... (с)
Ребята, объясните мне пожалуйста одну загадку Сейчас столкнулся и у меня ушел час на то что бы понять в чем проблема, а ПОЧЕМУ это происходит ... И так есть
Сначала для затравки - как вы думаете this.reasonCodes это кто Ну и сам вопрос ПОЧЕМУ ? |
|||
|
||||
| Ortega |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 5.11.2005 Где: Харьков, Украина Репутация: 4 Всего: 6 |
Осмелюсь предположить, что это - мап.
Если компилятор (вдруг) считает, что это не так - можно попробовать переименовать параметр. В подобных случаях чаще всего - ошибка в программисте, а не в странной Яве (сам сколько раз попадался). А вообще, подобные совпадения имен - моветон. Были бы они хотя бы одного класса.... --------------------
Всему свое время (с) ЧайфНе парься, будь счастлив (с) Пеппи Длинный Чулок |
|||
|
||||
| Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
this.reasonCodes - это HashMap, почему?
потому что ссылка this указывает на то, что reasonCodes не локальная переменная, а переменная объекта |
|||
|
||||
| inohodec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 151 Регистрация: 1.12.2004 Репутация: 2 Всего: 2 |
В том то и беда
this.reasonCodes - String !!! И почему это так я понять не могу ПС Я и не грешу на Java, скорее всего нехватка знаний с моей стороны |
|||
|
||||
| Ortega |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 5.11.2005 Где: Харьков, Украина Репутация: 4 Всего: 6 |
Это невозможно, потому что это невозможно. Переименуйте параметр и/или поле - и скорее всего, все станет ясно.
--------------------
Всему свое время (с) ЧайфНе парься, будь счастлив (с) Пеппи Длинный Чулок |
|||
|
||||
| inohodec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 151 Регистрация: 1.12.2004 Репутация: 2 Всего: 2 |
Я именно так и сделал, переименовал и все заработало
Но вопрос остался Как такое невозможное возможно |
|||
|
||||
| Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Лично у меня всё работает: ни IDE, ни javac ничего не говорят. скопировал/вставил приведенный кусок.
|
|||
|
||||
| inohodec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 151 Регистрация: 1.12.2004 Репутация: 2 Всего: 2 |
... Все спасибо, вот что значит много работать :(
Просто в дебагере - this.reasonCodes из this.reasonCodes.put(lineNumber, reasonCodes); Виден как стринг, а я ожидал что будет показыватся как HashMap Т.е. даже после 10 вставок, в дебагере я ничего не вижу ... просто стринг с новым значением Хотя после вызова get функции,возвращает правильное значение (HashMap) Спасибо |
|||
|
||||
| Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
А можно полностью класс, в котором ты работаешь?
|
|||
|
||||
| Ortega |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 5.11.2005 Где: Харьков, Украина Репутация: 4 Всего: 6 |
Кажись, я понял. inohodec, ты останавливался в дебаггере, смотрел в разделе variables и видел там String. Я угадал?
P.S. Кроме того, что такие совпадения моветон, они еще и на психику разрушающе действуют ;) --------------------
Всему свое время (с) ЧайфНе парься, будь счастлив (с) Пеппи Длинный Чулок |
|||
|
||||
| niasilil |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 4.6.2007 Где: USA Репутация: 8 Всего: 9 |
+1 не верю. Давай кусок кода, номер jvm, на какой платформе... Хотя такого не бывает, хоть как называй, хоть уписайся и сделай кучу вложенных классов и назови все одинаково, компилятору пофиг как интерпретировать, у него своя четкая логика. И по этой логике такого быть не может. Убедите меня если я не прав. -------------------- SCJP 5.0, SCJD |
|||
|
||||
| inohodec |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 151 Регистрация: 1.12.2004 Репутация: 2 Всего: 2 |
Со всеми согласен, и именно по тому что сам так думаю и возникли траблы
Т.е. все мои знания говорят что это не возможно, а глаза видят другое Я вчера был сильно уставший В дебагере, я вижу что это HashMap, тут он ведет себя вполне разумно Но, когда я делаю Inspect (Eclipse) что бы посмотреть что внутри Мне показывается только String, с последним значением И на этом этапе нет никакой возможности узнать что уже внутри ... А самое смешное После перезагрузки компа(и сна), все работает замечательно, т.е. так как нужно Наверное я что то начудил с именами, а потом по какой то причине Eclipse то ли не почистил кэш то ли ХЗ Или просто 23 часа за компом это слишком Всем спасибо |
|||
|
||||
| niasilil |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 4.6.2007 Где: USA Репутация: 8 Всего: 9 |
В эклипсе периодически баги вылезают, не заморачивайся. Их ловить очень сложно, потому что воспроизвести практически невозможно. Так и живем.
-------------------- SCJP 5.0, SCJD |
|||
|
||||
| sergioK |
|
|||
|
Бывалый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 207 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
Иноходец , отдыхать чаще надо потом как у string может быть метод put? Когда видишь такую лажу пользуй System.out.println а еще лучше пиши в отдельный файл , дебагер - не панацея от всех болезней , |
|||
|
||||
![]()
|
| Правила форума "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. |