Pull to refresh

Comments 27

UFO just landed and posted this here
11-я LTE и будет такой кажется до 24 года, так что все эти вкушняшки только года через три попробуем.

Java 17 LTS выходит в сентябре 2021

Капитан подсказывает — то что в 2021 появится 17я не значит, что 11я исчезнет.

Тут салага хотел вкусняшек попробовать, и то что капитан настаивает на 11-ой ему до фени

Вау, нормальные строки завезли в 2021 году.

Ну че ты начинаешь, мы только на "людей" начинаем быть похожи.

Пара мыслей про новый System.Logger:


  • появилась поддержка лямбда-выражений — это то, чего не хватало в SLF4J. Кажется, что связка System.Logger и log4j2 будет идеальной;
  • убрали лишние уровни логирования типа FINE, FINER, FINEST и оставили привычные 5 уровней (+2 системных);
  • но при этом поленились создавать методы debug(), info() и прочие, предлагая каждый раз указывать уровень логирования в аргументах метода;
  • в lombok до сих пор нет аннотации, которая будет генерировать инстанс такого логера.

В итоге переход с SLF4J будет слишком тяжелым: нужно будет руками создавать экземпляр логера в каждом классе и везде придется поменять вызовы логирующих методов. Если с первый недостаток можно было бы устранить, сделав PR в lombok, то для устранения второго придется писать тулзу (или искать существующую), которая пробежится по всем классам и переделает вызовы логирования в соответствии с новой парадигмой.
В общем, создать универсальное средство для логирования, которое стало бы общепринятым в Java-мире, так и не удалось. SLF4J и Logback мертвы, но все еще хорошо справляются со своей работой, а переход с SLF4J на System.Logger кажется слишком болезненным.

Добавление 'Objects.checkIndex' выглядит как то совсем протянуто. С таким подходом можно практически любой метод в Objects поместить.
Откуда необходимость вообще взялась добавлять такой метод в стандартную библиотеку?
Плюс даже нет возможности бросить какое то специфичное исключение или текст ошибки хотя бы кастомизировать, судя по всему
Я не работаю с Java если что, но выглядит странно

UFO just landed and posted this here

Прошу прощения, не понял, то ли Вы меня поддержали, то ли наоборот)

UFO just landed and posted this here

Не в суперклассе Object, а в утилитном классе Objects, который в отдельном пакете java.util находится.

UFO just landed and posted this here

А куча новых методов в стринге не смущает? А новые методы у стрима? Давно пора завезти нормальные экстеншны, и перестать подавать яичницу в качестве божьего дара...

Ну строковые методы хотя бы отношения к строками имеют, но findIndex в объекте — вообще за гранью)


да, с экстеншнами это выглядело бы куда лучше

findIndex в объекте — вообще за гранью)

Выше уже писали, я на всякий случай повторюсь. findIndex в классе Objects. Это такой утилити класс, в который складывают всякие вот такие методы.

Я лично скорее против экстенжн методов, чем за них. Но в джаве можно пользоваться ими уже сейчас, достаточно подключить Lombok.

Э-э-э, ну а Lombok-то как заменит Extension methods?

Так у него есть, как таковая фича, extension methods.
Более того, в интелидже уже есть их минимальная поддержка.

Откуда необходимость вообще взялась добавлять такой метод в стандартную библиотеку?

Я так понимаю, подобные методы в ней были с самого начала, только внутренние или приватные.

Графики начинающиеся не с 0 воспринимаются тяжело и сбивают с толку

Какой кошмар. Статью можно сразу удалять из-за такого позора.
PS. Графики рисует сторонняя тулза.

Если не обращать на них внимания, статья в целом хорошая. Добавил к закладки некоторые примеры.

Вижу в статье 2 графика и оба с логарифмической шкалой. Логарифмическую шкалу начинать от 0 невозможно.

У вас код в бенчмарках не совсем честный и правильный.
Укажите в конструкторе ArrayList размер внутренного массива сразу. Он ведь заранее известен.
В каком из бенчмарков? В первом вызывается new ArrayList<>(sourceList), и он и так выделяет массив точной длины. Во втором размер неизвестен в общем случае – фильтр может быть любым.
Sign up to leave a comment.

Articles