Pull to refresh

Comments 15

Я недавно задавался вопросом «какой может быть открывающая картинка для поста про Java 19», там в реплаях нагенерили изображение нейросетями по запросу «Duke, the Java mascot discovers new Java features in a treasure chest». Получилось не совсем то, но раз тут пост про Java 19 без открывающей картинки, пусть тогда оно здесь будет :)



Как там честные дженерики и unsigned int поживают, уже сделали?

Честные дженерики потребуют изменения структуры jvm, что приведёт к отказу от обратной совместимости. Если очень нужно разделять List<A> от List<B> и менять архитектуру нельзя/невозможно, то решением будет наследование от списка с реализацией метода Class getElementClass().

Так ли часто нужен unsigned? На практике редко.
Для unsigned int есть Integer.compareUnsigned(a, b), и другие функции. То же для остальных примитивов.

Там где часто нужны unsigned, используются другие языки: C/C++/Rust. В JVM мире очень редко, соглашусь с вами.

Комплексные числа тоже не нужны?

Кому-то и кватернионы или арифметика с насыщением могут быть нужны. Но это не значит, что это обязательно должно быть частью языка общего назначения, а не специализированной библиотекой.

А что уже можно операторы перегружать?

можно на котлин перейти

Ещё как нужны, громадное количество величин по смыслу не могут быть отрицательными

А громадное количество строковых значений по смыслу не могут быть "какими угодно". И чё? :-)

Не менее громадное количество величин по смыслу имеет фиксированный диапазон значений, меньший чем диапазон int/uint типа.

С паттернами записей код становится существенно компактнее:

А кто сказал, что компактнее == читабельнее? Я считаю, что читабельность упала.

Изменения pattern-matching для "switch" всё более похожи на копирастию с костылями. Взяли тот же "when" из C#, который к тому же относился к statement-switch, а не expression-switch. Нет бы заменить "&&", "||" на нормальные слова "and" и "or". Чувствую, что ещё не решили, поэтому пока Preview.

Sign up to leave a comment.

Articles