С новым 6-месячным циклом выпуска Java вы должны ожидать, что интересные функции будут доставаться разработчикам более быстрыми темпами. Я видел некоторые функции cools, которые вы могли бы ожидать увидеть в выпуске JDK12 в следующем году. Вы можете получить сборку раннего доступа Open JDK 12 и попробовать эти функции предварительного просмотра out.
Переключение выражений
Например, у вас есть перечисление дней недели, и вы хотите использовать оператор switch для возврата количества букв в строке. Есть лучшие способы сделать это, но мы собираемся использовать операторы Switch, чтобы продемонстрировать это.
Вот перечисление:
enum DayOfWeek{ MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }
С тем, что мы знаем в Java, это, вероятно, было бы решением:
int numLetters; switch(day){ case MONDAY: case FRIDAY: case SUNDAY: numLetters=6; break; case TUESDAY: numLetters=7; break; case THURSDAY: case SATURDAY: numLetters=9; break; case WEDNESDAY: numLetters=10; break; default: throw new NoSuchDayException(day); }
Это действительно может вызвать некоторые ошибки, поскольку может затруднить поддержку кода. С помощью выражений Switch вы можете записать Switch как выражение. В инструкции Switch значение по умолчанию не требуется.
Вот как будет выглядеть код:
int numLetters=switch(day) { case MONDAY, FRIDAY, SUNDAY -> 6; case TUESDAY -> 7; case THURSDAY, SATURDAY -> 8; case WEDNESDAY -> 9; };
Записи
Мы все знаем наши POJO (обычный старый объект Java), они поставляются с большим количеством шаблонного кода, например, вот классический POJO:
class Point { double x; double y; Point(double x, double y) { this.x = x; this.y = y; } public void setX(double x) { this.x = x; } public double getX() { return x; } public void setY(double y) { this.y = y; } public double getY() { return y; } @Override public int hashCode() { return super.hashCode(); } @Override public boolean equals(Object obj) { return super.equals(obj); } @Override public String toString() { return super.toString(); } }
Что ж, Records (в настоящее время не предназначен для JDK 12 на момент написания этой статьи) замените весь этот код POJO всего одной строкой:
record Point(double x, double y);
Есть и другие интересные функции, которые можно ожидать в JDK 12 и за его пределами, я лично ценю тот факт, что сообщество Java реагирует и стремится продвигать Java вперед.
В случае, если вы заинтересованы в том, чтобы узнать больше, вы можете посмотреть это видео:
Оригинал: “https://dev.to/lemuelogbunude/interesting-jdk-12-features-to-watch-out-for-ijp”