Может ли кто-нибудь в двух словах описать различия между тремя предложениями по замыканиям и их текущим состоянием в Java?

StackOverflow https://stackoverflow.com/questions/2117178

Вопрос

Я читаю о замыканиях, которые появятся в Java 7.

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

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

Еще один вопрос, который меня интересует по поводу замыканий: существует ли только одна линия разработки или разрабатываются разные версии (например, замыкания от Sun, от Google, от Apache и т. д.)?

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

Решение

Если я правильно помню

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

BGGA был очень мощным предложением, которое позволяло не только истинные замыкания, но и синтаксис для определения структур, которые выглядели как новые синтаксические элементы (то есть использование (Closable){block}).

FCM был дополнительным предложением, которое пыталось стать компромиссом между ними, с предложением полного закрытия, но с лучшим синтаксисом и без некоторых наиболее спорных особенностей BGGA.

Текущее предложение можно найти по адресу http://www.javac.info/closures-v06a.html и http://www.javac.info/closures-v06b.html, где часть A — это простые полные возможности, а часть B — некоторые из наиболее мощных функций, взятых из BGGA.

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

Насколько я понимаю, Проект Лямбда, запланированные изменения по добавлению лямбда-выражений (некоторые из которых являются замыканиями, а некоторые — лямбда-выражениями) в язык Java, будут представлять собой смесь старых предложений.Самая последняя доступная на данный момент информация по этому предложению - это 0.1 проект спецификации.Чтобы быть в курсе прогресса, вы можете следить Марк Рейнхольд обновления.

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