Я прочитал статью о программном обеспечении Joel On Software об идее использования функций более высокого порядка, чтобы значительно упростить код за счет использования карты и сокращения.Он упомянул, что это было трудно сделать на Java.Статья: http://www.joelonsoftware.com/items/2006/08/01.html
Пример из статьи ниже циклически перебирает массив и использует функцию fn, переданную в качестве аргумента для каждого элемента в массиве:
function map(fn, a)
{
for (i = 0; i < a.length; i++)
{
a[i] = fn(a[i]);
}
}
На практике это вызывается аналогично приведенному ниже:
map( function(x){return x*2;}, a );
map( alert, a );
В идеале я хотел бы написать функцию карты для работы с массивами или коллекциями любого типа, если это возможно.
Я искал в Интернете, и мне трудно найти ресурсы на эту тему.Во-первых, возможны ли анонимные функции в Java?Можно ли это сделать по-другому?Будет ли это доступно в будущей версии Java?Если возможно, как я могу это сделать?
Я полагаю, что если это невозможно в Java, существует некая «схема» / методика, которую люди используют для достижения того же эффекта, поскольку я представляю, что анонимные функцииочень мощный инструмент в мире программного обеспечения.Единственный похожий вопрос, который мне удалось найти, заключался в следующем: Обобщения Java - реализация функций более высокого порядка, таких как map , и для меня это абсолютно бессмысленно.