В X сравнили два фрагмента кода. Сверху современная Java, снизу Rust. Оба описывают температуру в Цельсиях и Фаренгейтах, разбирают варианты и обрабатывают результат преобразования строки в число.
И если ваша Java до сих пор состоит из геттеров, сеттеров и бесконечных
instanceof, верхняя половина картинки может удивить.В Java здесь работают вместе:
☑️ Records – чтобы описать данные без простыни служебного кода.
☑️ Sealed interface – чтобы ограничить набор допустимых вариантов.
☑️ Pattern matching в
switch – чтобы сразу разобрать вариант и достать его содержимое.☑️ Условия
when – чтобы прямо в ветке проверить значение.В Rust похожая задача решается через
enum и match. Синтаксис отличается, но ход мысли уже очень близкий - описали возможные состояния → явно обработали каждое.Правда, как в том анекдоте, есть нюанс. Оказанный в Java
Result.of(...) – не стандартный аналог растовского Result. Его реализация на скриншоте не раскрыта. Так что принимать всю картинку за возможности Java из коробки не стоит.Но повод пересмотреть старые претензии к языку вполне есть. Шутки про многословную Java помнят все. А до records и pattern matching в собственном проекте добрались ещё не все.
👀 У вас современная Java уже в коде или пока только номер версии в сборке?
