Каково текущее состояние замыканий в Java? - PullRequest
19 голосов
/ 22 сентября 2008

Кто-нибудь знает, будут ли замыкания в Java 7?

Ответы [ 6 ]

19 голосов
/ 22 сентября 2008

Неизвестно до тех пор, пока не будет создана Java SE 7 JSR (предположительно, Дэнни Кауард) и не сформирована экспертная группа и не выбрано содержимое.

Моя страница Java 7 представляет собой хороший набор ссылок о Java 7 в целом и содержит ссылки на все предложения замыканий и записи в блоге:

http://tech.puredanger.com/java7#closures

И я веду блог о ссылках на Java 7, где вы можете найти ссылки на замыкания и другие материалы по адресу:

http://java7.tumblr.com

И, возможно, вам также будет интересен мой блог на Java 7 Predictions, если вы хотите услышать мое мнение: http://tech.puredanger.com/2008/08/02/java7-prediction-update/

ОБНОВЛЕНИЕ: Марк Рейнхольд заявил в Devoxx в декабре 2008 года, что замыкания НЕ будут включены в Java 7 из-за отсутствия единого мнения о том, как реализовать.

13 голосов
/ 30 декабря 2009

На Devoxx 2008 Марк Рейнхольд дал понять , что замыкания не будут включаться в Java 7.


Подождите! Замыкания будут включаться в Java 7. Марк Рейнхольд объявил об этом на Devoxx 2009.


Страхуй это! Замыкания ( лямбда-выражения ) были отложены до Java 8. Для получения дополнительной информации следуйте Project Lambda (JSR 335) .

7 голосов
/ 22 сентября 2008

В настоящее время существует несколько конкурирующих предложений, BGGA , CICE , среди прочих. К сожалению, горячие дебаты по поводу лучшего подхода остаются. В результате на данном этапе маловероятно, что замыкания превратятся в Java 7 из-за консервативного характера процесса принятия.

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

Мой совет: если вы действительно хотите иметь доступ к современным языковым функциям, таким как замыкания, но хотите остаться в рамках экосистемы Java, вам стоит взглянуть на Scala .

3 голосов
/ 22 сентября 2008

Groovy - лучшая альтернатива Java, которую я когда-либо видел, которая включает в себя функции динамических языков, включая замыкания, расширение классов во время выполнения и т. Д. Хотя у Ruby есть небольшое преимущество в разработке, я бы сказал, что Groovy компилирует в байт-код Java и взаимодействует с Java без ЛЮБОГО кода интерфейса - огромный плюс, который нельзя игнорировать.

http://groovy.codehaus.org

2 голосов
/ 10 февраля 2009

Очевидно, что замыкания не будут в Java 7. Смотри это и это .

1 голос
/ 12 сентября 2009

Закрытие окончательно не будет присутствовать в Java 7, но если вы ищете более легкое решение для закрытия в Java прямо сейчас, посмотрите, как они реализованы в библиотеке lambdaj:

http://code.google.com/p/lambdaj/wiki/Closures

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...