Вопрос

На этот вопрос уже есть ответ здесь:

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

Как будет выглядеть этот синтаксис?

Я где-то читал, что введение замыканий в Java — это большее изменение, чем обобщение в Java 5.Это правда?за и против?

(К настоящему моменту мы точно знаем, что замыкания не будут включены в следующую версию Java)

ИЛИ

редактировать: http://puredanger.com/tech/2009/11/18/closures-after-all/ :D

редактировать2:Переосмысление JDK7: http://blogs.oracle.com/mr/entry/rethinking_jdk7

редактировать3:Нельзя терять ни минуты!: http://blogs.oracle.com/mr/entry/quartet

Это было полезно?

Решение

Посмотри на http://www.javac.info/ .

Кажется, вот так это будет выглядеть:

boolean even = { int x => x % 2 == 0 }.invoke(15);

где { int x => x % 2 == 0 } бит - это закрытие.

Другие советы

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

Видеть Страница Java 7 Алекса Миллера за предложения и различные сообщения в блогах.

Лично мне бы хотелось увидеть замыкания - они красиво и невероятно полезно - но я боюсь, что некоторые предложения довольно сомнительны.

В ноябре 2009 года в этом вопросе произошел неожиданный разворот. замыкания теперь будут добавлены на Яву 7.

Обновлять

Замыканий (лямбда-выражений AKA) в Java 7 не было.Они были окончательно добавлен в первый выпуск Java 8 в 2014 году.

К сожалению, в Java 7 вы не найдете решения.Если вы ищете более простое решение для закрытия в Java, просто посмотрите проект Lambdaj:

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

Это функции Java 7 http://tech.puredanger.com/java7/#switch примеры очень полезны.

Обратите внимание, что «тип функции» на самом деле является типом согласно предложению:

{int => boolean} evaluateInt;    //declare variable of "function" type
evaluateInt = {int x => x % 2 }; //assignment

Я думаю, что до сих пор ведется много споров относительно того, какой синтаксис в конечном итоге будет использоваться.На самом деле я был бы очень удивлен, если бы из-за всего этого это вошло в Java 7.

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

Замыкания имеют некоторые серьезные крайние случаи.Я бы сказал, что замыкания — гораздо более существенное изменение, чем обобщения, и в последнем все еще есть ряд сложных случаев.напримерБиблиотеки коллекций Java нельзя писать/компилировать без предупреждений.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top