Как много нам открытий чудных...

Jun 14, 2016 17:07

Познакомилась сегодня с Java. Пребываю в некотором изумлении.
Read more... )

этот безумный мир

Leave a comment

Comments 25

l_sylvanas June 14 2016, 15:58:51 UTC
для Интеджеров :))

Reply


l_sylvanas June 14 2016, 16:09:06 UTC
А как там заводятся эти объекты? Мне кажется, что должно было что-то все-таки произойти помимо просто Integer x = new Integer(5); Integer y = new Integer(5);. Какой-нибудь хитрый боксинг-анбоксинг?..

Я на джаве не пишу никогда, поэтому не сталкивалась с этим, но в принципе все эти вещи, конечно, нужны (Integer class и пр.), но тогда и пользоваться ими нужно соответственно. Если у тебя класс, то и не надо писать Integer x = 5, надо использовать new? Наверное.

На самом деле понимаю твои чувства, разумеется, всецело :). Я бы с ума сошла, наверное :).

Reply

tapka June 14 2016, 17:08:13 UTC
Я сварщик не настоящий, яву вижу в первый раз. Про боксинг только вот уже после, на stakeoverflow прочитала.

В нашем случае нужно было завести эти переменные как тривиальный int и все было бы хорошо. Не знаю, зачем она завела их как объект Integer, нужды в этом никакой не было. Чтоб работало так, как есть надо было бы сравнивать i.value==j.value видимо.

Upd. А вернее надо видимо i.equals(j) и пусть уж объект сам внутри себя сравнивает.

Reply

l_sylvanas June 14 2016, 17:48:46 UTC
Ох, equals... Да, там полно чудных открытий. Например, вот тоже послужило поводом для "веселья" многих начинающих на джаве:
http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java

Однажды я целый день искала баг в коде на C#, и там в итоге тоже оказалось дело в том, что были поиспользованы всякие хитрые модные фичи без понимания, зачем :). Вполне типичный случай. Ну, я сама горазда, конечно, не хочу ничего сказать :).

Reply

green_fr June 15 2016, 07:44:35 UTC
Я бы скорее сказал, что раз уж отказались от поинтеров, то нефиг вообще разрешать операцию == на объектах. Ну или как VB - назначать одно из свойств объекта свойством по умолчанию и сравнивать его, когда клиент просит сравнить объект (ужасное решение, но всяко лучше, чем сравнивать поинтеры).

Reply


baronofhell June 14 2016, 16:11:03 UTC
Кровавый ынтерпрайз, однако :)

Моё любимое про яву:

<@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

tapka June 14 2016, 17:09:14 UTC
Ооооо.....

Reply

l_sylvanas June 15 2016, 02:23:42 UTC
Ну, это все же шутка (почти) :).

Reply

green_fr June 15 2016, 08:25:39 UTC
Конечно шутка :-) Правильный ответ: чтобы написать 3.6f в java достаточно написать 3.6f. Но да, при желании можно и через задницу.

Reply


wildest_honey June 14 2016, 16:15:00 UTC
Я думала в другом проблема, что целые ограничены 128

Reply

tapka June 14 2016, 17:16:08 UTC
Но оно тогда показывало бы наверное другое значение, не 128?

Reply

wildest_honey June 14 2016, 17:26:07 UTC
Так далеко я не подумала

Reply


mudravrik June 14 2016, 17:40:03 UTC
:)

Reply


Leave a comment

Up