В Java появятся компактные тела методов

Недавно на сайте OpenJDK появился новый черновик JEP, в котором предлагается позволить в Java писать методы в более компактной форме. Сейчас в Java для объявления методов есть только одна форма, в которой даже для простейших методов приходится писать фигурные скобки и ключевое слово return:

int length(String s) {
    return s.length();
}

Компактная форма будет существенно короче:

int length(String s) -> s.length();

Кроме того, если методы являются просто обёртками над существующими методами, то предлагается также ещё форма через ссылку на метод:

int length(String s) = String::length;

Таким образом, новые компактные тела методов будут полностью аналогичны лямбда выражениям в Java, у которых тоже есть две формы: через оператор -> и через ссылку на метод.

Если этот JEP будет реализован, то это позволит в будущем писать более короткий и читаемый Java-код без лишнего шума, особенно в ситуациях, когда в проекте много классов с большим количеством геттеров и сеттеров.

Компактные тела методов уже существуют во многих языках, например, C#, Kotlin, Scala. Примечательно, что в C# с помощью краткой формы можно писать не только методы, но и конструкторы. Однако Java-proposal специфицирует, что данная форма будет доступна только для методов.

Подписывайтесь на канал в Telegram, чтобы не пропускать новости.

Все материалы на этом сайте выложены под лицензией CC BY-SA 4.0
© Евгений Козлов, 2017-2020