Закрытия в Java 7 [дубликат]

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
29
задан Luke Woodward 16 February 2012 в 23:15
поделиться

9 ответов

Взгляните на http://www.javac.info/ .

кажется, что это - то, как это посмотрело бы:

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

, где эти { int x => x % 2 == 0 } бит является закрытием.

17
ответ дан Steven Huwig 28 November 2019 в 01:27
поделиться

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

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

4
ответ дан 28 November 2019 в 01:27
поделиться

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

См. Java Alex Miller 7 страниц для предложений и различных сообщений в блоге.

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

13
ответ дан Jon Skeet 28 November 2019 в 01:27
поделиться

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

Обновление

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

11
ответ дан Dónal 28 November 2019 в 01:27
поделиться

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

3
ответ дан Agusti-N 28 November 2019 в 01:27
поделиться

Обратите внимание, что "функциональный тип" является действительно типом в соответствии с предложением:

{int => boolean} evaluateInt;    //declare variable of "function" type
evaluateInt = {int x => x % 2 }; //assignment
3
ответ дан oxbow_lakes 28 November 2019 в 01:27
поделиться

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

2
ответ дан jsight 28 November 2019 в 01:27
поделиться

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

1
ответ дан Peter Lawrey 28 November 2019 в 01:27
поделиться

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

2
ответ дан 28 November 2019 в 01:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: