我正在寻找的逆Supplier<T>
在番石榴。我希望它会被称为Consumer
– 不 – 或者Sink
– 存在,但用于原始值。
它是否隐藏在某个地方而我错过了?
我想看到它的原因与Supplier
很有用。诚然,使用不太常见,但许多静态方法Suppliers
例如,将以类似的方式应用,并且用一行表达诸如“向该供应商发送此迭代中的每个值”之类的内容将很有用。
同时,Predicate
and Function<T,Void>
是丑陋的解决方法。
您的替代方案是:
-
Java 8介绍了一个Consumer https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html您可以的界面compose https://docs.oracle.com/javase/8/docs/api/java/util/function/Consumer.html#andThen-java.util.function.Consumer-.
-
Xtend http://www.eclipse.org/xtend的标准库包含Procedures http://download.eclipse.org/modeling/tmf/xtext/javadoc/2.3/org/eclipse/xtext/xbase/lib/Procedures.html.
-
Scala http://scala-lang.org/ has Function* http://www.scala-lang.org/api/current/index.html#scala.Function1;如果函数的返回类型是Unit http://www.scala-lang.org/api/current/index.html#scala.Unit,它被认为是副作用。
在所有这些语言中,您都可以方便地使用函数式接口,因此您也可以使用例如函数式Java http://functionaljava.org/'s Effect http://functionaljava.googlecode.com/svn/artifacts/3.0/javadoc/fj/Effect.html.
否则,您最好依赖现有的语言结构来执行副作用,例如内置的for
环形。 Java 这个问题 and 这次讨论 http://code.google.com/p/guava-libraries/wiki/FunctionalExplained.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)