Есть ли в Google Collections API эквивалент метода Ruby Enumerable#inject?

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

Вопрос

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

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

Решение

Нет.

Несмотря на то, что в нем есть определенные элементы функционального программирования (предикат, функция), они должны были поддерживать определенные потребности, и его основная цель не в добавлении элементов функционального программирования для Java (учитывая, насколько он ужасно многословен в настоящее время).Видеть Эта проблема немного об этом.

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

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

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

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

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;
  }

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