Есть ли в Google Collections API эквивалент метода Ruby Enumerable # inject? - PullRequest
0 голосов
/ 25 марта 2010

Я прочитал Javadoc и не смог найти ничего похожего на него.

Ответы [ 2 ]

2 голосов
/ 26 марта 2010

Нет, это не так.

Хотя в нем есть определенные элементы функционального программирования (Predicate, Function), они должны были удовлетворить конкретные потребности, и его основной задачей является не добавление элементов функционального программирования для Java (видя, как это ужасно многословно в настоящее время). Подробнее об этом см. в этом выпуске .

0 голосов
/ 25 марта 2010

Я думаю, что у вас нет точного метода инъекции ... но вы можете получить аналогичное решение, используя предоставленные методы transformValues ​​

Maps.transformValues(Map<K,V1> fromMap, Function<? super V1,V2> function)
List.transform(List<F> fromList, Function<? super F,? extends T> function)

Конечно, вам понадобится специальный класс Function для работы с переданным параметром inject:

class MyFunction<Type, Type>
{
  static String variable;

  Type apply(Type t)
  {
     //do whatever you want with t
     // and storing intermediate result to variable

     // return same t to make this function work like identity
     return t;
  }

}
...