#java #php #closures
#java #php #замыкания
Вопрос:
Я сомневаюсь в том, как работает Java. Мне нужно создать подобный код (на PHP):
array_map(function($object){ ... });
И на Java я близок к этому:
this.addTransition(new CallerTransition() {
@Override
protected void execute() {
// Do something with _this_ here
}
});
Перевод: Мне нужно знать, существует ли лучший способ работы с подобными замыканиями.
Примечания: CallerTransition
имеет подтип Transition
. Для addTransition требуется Transition
. execute
Метод будет выполнен addTransition
.
Ответ №1:
В Java нет лямбда-функций или замыканий на основе функций, поэтому, боюсь, анонимные классы — лучший способ.
Комментарии:
1. Вы имеете в виду, тем же способом, что и я?
2. Лямбда-выражения в настоящее время запланированы для Java 8 как JSR 335 на JSR 337 — openjdk.java.net/projects/lambda
3. не повезло, вам придется использовать анонимные классы.