А как там заводятся эти объекты? Мне кажется, что должно было что-то все-таки произойти помимо просто Integer x = new Integer(5); Integer y = new Integer(5);. Какой-нибудь хитрый боксинг-анбоксинг?..
Я на джаве не пишу никогда, поэтому не сталкивалась с этим, но в принципе все эти вещи, конечно, нужны (Integer class и пр.), но тогда и пользоваться ими нужно соответственно. Если у тебя класс, то и не надо писать Integer x = 5, надо использовать new? Наверное.
На самом деле понимаю твои чувства, разумеется, всецело :). Я бы с ума сошла, наверное :).
Я сварщик не настоящий, яву вижу в первый раз. Про боксинг только вот уже после, на stakeoverflow прочитала.
В нашем случае нужно было завести эти переменные как тривиальный int и все было бы хорошо. Не знаю, зачем она завела их как объект Integer, нужды в этом никакой не было. Чтоб работало так, как есть надо было бы сравнивать i.value==j.value видимо.
Upd. А вернее надо видимо i.equals(j) и пусть уж объект сам внутри себя сравнивает.
Однажды я целый день искала баг в коде на C#, и там в итоге тоже оказалось дело в том, что были поиспользованы всякие хитрые модные фичи без понимания, зачем :). Вполне типичный случай. Ну, я сама горазда, конечно, не хочу ничего сказать :).
Я бы скорее сказал, что раз уж отказались от поинтеров, то нефиг вообще разрешать операцию == на объектах. Ну или как VB - назначать одно из свойств объекта свойством по умолчанию и сравнивать его, когда клиент просит сравнить объект (ужасное решение, но всяко лучше, чем сравнивать поинтеры).
<@joosa> how do you say float in java? just 1.5f? <@Gliptic> FloatFactoryFactory.getInstance(FloatFactoryFactory.defaultInstanceDescriptionString).getFactory(Locale.getLocale("en-US")).createBuilder().setString("1.5").getResult()
Comments 25
Reply
Я на джаве не пишу никогда, поэтому не сталкивалась с этим, но в принципе все эти вещи, конечно, нужны (Integer class и пр.), но тогда и пользоваться ими нужно соответственно. Если у тебя класс, то и не надо писать Integer x = 5, надо использовать new? Наверное.
На самом деле понимаю твои чувства, разумеется, всецело :). Я бы с ума сошла, наверное :).
Reply
В нашем случае нужно было завести эти переменные как тривиальный int и все было бы хорошо. Не знаю, зачем она завела их как объект Integer, нужды в этом никакой не было. Чтоб работало так, как есть надо было бы сравнивать i.value==j.value видимо.
Upd. А вернее надо видимо i.equals(j) и пусть уж объект сам внутри себя сравнивает.
Reply
http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java
Однажды я целый день искала баг в коде на C#, и там в итоге тоже оказалось дело в том, что были поиспользованы всякие хитрые модные фичи без понимания, зачем :). Вполне типичный случай. Ну, я сама горазда, конечно, не хочу ничего сказать :).
Reply
Reply
Моё любимое про яву:
<@joosa> how do you say float in java? just 1.5f?
<@Gliptic> FloatFactoryFactory.getInstance(FloatFactoryFactory.defaultInstanceDescriptionString).getFactory(Locale.getLocale("en-US")).createBuilder().setString("1.5").getResult()
Reply
Reply
Reply
Reply
Reply
Reply
Reply
Reply
Leave a comment