Switch-case тоже, базовая конструкция языка, вроде. Либо используем и знаем, как она работает, либо не удивляемся, что она имеет ограничения. Раньше вообще можно было только числа использовать. (Да, тут я рассматриваю char как число). И, на всякий случай, в case можно писать только константу/константное выражение.
Вам осталось сделать крошечный шаг до осознания того, что String.class как раз и является постоянной. Я ведь недаром вписал пример про switch-case, эта конструкция не так проста, как кажется, но, похоже, почти никто не заметил скрытого смысла. Думаю, я сделаю про это отдельную запись.
Это статья — своеобразный донос. В книге пошутили про украинцев, у автора статьи подгорело и он побежал "прославлять" автора труда, в которой плохой автор что-то посмел пошутить про украинцев, евреев, геев и далее по списку.
"Южмаш" производил носители "Зенит" и был одним из ведущим предприятий отрасли не только в б.СССР, но и в мире. Сравнение, ИМХО, уместно, тем более что сам Роскосмос часто сравнивают с частной компанией "Спейс-Икс".
Совсем забыл, Arrays.sort() вполне себе используется из COWList-a, ArrayList-a и т.д. и там тоже есть все методы для всех примитивов и ссылок + отдельные методы для параллельной сортировки и сортировки слиянием.
Я к тому, что надо критически смотреть на свои гениальные идеи.
Для этого и существует сообщество — чтобы бить советской железной линейкой по излишне шаловливым рукам. Сам всего в голове не удержишь, тем более могут вылезти грабли о которых ты даже не подозреваешь.
Как-нибудь напишу, как я пробовал TreeMap подлатать: вроде всё идеально ложится, 150 строк кода можно выкинуть не поломав ни единого теста, производительность растёт, ну красота же! А оказалось, что если взять TreeMap до моих изменений, сериализовать, записать в файл, а потом превратить обратно в TreeMap (но уже с моими изменениями) то будет НПЕ :)
Это можно парировать наличием 6 методов EnumSet.of() и 12 (!) методов List.of() и ещё стольких же у Map.of(). И всё только для того, чтобы варарги не использовать ну и с прицелом на средний размер списка/словаря.
Так что тут палка о двух концах, имхо. Тем более, что в случае с Arrays код получается довольно однотипным — только типы меняй. И раздувание класса Arrays вполне себе возмещается ужатием прочих коллекций на основе массива, ведь мы не просто добавляем методы — мы ещё и убираем их же тела из коллекций.
Ну, пример с ArrayList-ом, справедливости ради, не мой — его предложил Стив Грёгер.
По поводу остального я согласен, что один случай не показатель. Точно так же я когда-то хотел предложить улучшение сортировки: если массив состоит всего лишь из двух элементов, то их можно просто переставить (если первый больше второго) или оставить всё как есть (в противоположном случае). Оказалось, что лишние проверки будут бить по всем остальным случаям (в массиве более 2 элементов).
Я ведь не зря написал String.class и Integer.class: классы из java.lang, ЕМНИП, загружаются при запуске виртуальной машины и только один раз.
Вам осталось сделать крошечный шаг до осознания того, что
String.class
как раз и является постоянной. Я ведь недаром вписал пример про switch-case, эта конструкция не так проста, как кажется, но, похоже, почти никто не заметил скрытого смысла. Думаю, я сделаю про это отдельную запись.Это статья — своеобразный донос. В книге пошутили про украинцев, у автора статьи подгорело и он побежал "прославлять" автора труда, в которой плохой автор что-то посмел пошутить про украинцев, евреев, геев и далее по списку.
То, что вы написали, — это не рецензия, это больше похоже на челобитную или донос.
Мне. На проблему со Спринг Датой я почти наступил.
Про брейк не знал, спасибо!
Обращайтесь, я поражен был, если честно, когда впервые увидел ))
СССР возник 30 декабря 1922 года.
Лихо вы за всех вписались.
Где же Канада?
Я так понимаю, комментарий мой злорадный только потому, что сравнение не в пользу "Южмаша". А ещё какие-нибудь причины есть?
"Южмаш" производил носители "Зенит" и был одним из ведущим предприятий отрасли не только в б.СССР, но и в мире. Сравнение, ИМХО, уместно, тем более что сам Роскосмос часто сравнивают с частной компанией "Спейс-Икс".
С Роскосмосом.
Он тут для сравнения с ним.
Завидуйте ))
Позвольте полюбопытствовать, с каких пор констатация факта стала злорадством?
Ваш комментарий делает больно "Южмашу".
Совсем забыл,
Arrays.sort()
вполне себе используется из COWList-a, ArrayList-a и т.д. и там тоже есть все методы для всех примитивов и ссылок + отдельные методы для параллельной сортировки и сортировки слиянием.Для этого и существует сообщество — чтобы бить советской железной линейкой по излишне шаловливым рукам. Сам всего в голове не удержишь, тем более могут вылезти грабли о которых ты даже не подозреваешь.
Как-нибудь напишу, как я пробовал
TreeMap
подлатать: вроде всё идеально ложится, 150 строк кода можно выкинуть не поломав ни единого теста, производительность растёт, ну красота же! А оказалось, что если взятьTreeMap
до моих изменений, сериализовать, записать в файл, а потом превратить обратно вTreeMap
(но уже с моими изменениями) то будет НПЕ :)Ничто не предвещало беды...
Это можно парировать наличием 6 методов
EnumSet.of()
и 12 (!) методовList.of()
и ещё стольких же уMap.of()
. И всё только для того, чтобы варарги не использовать ну и с прицелом на средний размер списка/словаря.Так что тут палка о двух концах, имхо. Тем более, что в случае с Arrays код получается довольно однотипным — только типы меняй. И раздувание класса Arrays вполне себе возмещается ужатием прочих коллекций на основе массива, ведь мы не просто добавляем методы — мы ещё и убираем их же тела из коллекций.
Ну, пример с ArrayList-ом, справедливости ради, не мой — его предложил Стив Грёгер.
По поводу остального я согласен, что один случай не показатель. Точно так же я когда-то хотел предложить улучшение сортировки: если массив состоит всего лишь из двух элементов, то их можно просто переставить (если первый больше второго) или оставить всё как есть (в противоположном случае). Оказалось, что лишние проверки будут бить по всем остальным случаям (в массиве более 2 элементов).