我试图阅读新的java.util.function
Consumer
,Supplier
和Function
。为什么我们需要Java 8中的消费者和供应商功能?
我不明白为什么我们需要他们,这是什么问题,他们解决了什么问题?
请给我一个没有这些API和新API的使用示例,并解决了什么问题?
我试图阅读新的java.util.function
Consumer
,Supplier
和Function
。为什么我们需要Java 8中的消费者和供应商功能?
我不明白为什么我们需要他们,这是什么问题,他们解决了什么问题?
请给我一个没有这些API和新API的使用示例,并解决了什么问题?
也许你认为他们必须比他们更复杂。
它们被设计成超级简单的代码片段,它们本身并没有太多的功能,但是您可以将代码片段传递给可以使用这些代码片段的库。
这个例子打印使用供应商和消费者
Stream.generate(UUID::random) // <<< Supplier<UUID>
.limit(100)
.forEach(System.out::println); // <<< Consumer<UUID>
100点的UUID较长的例子是
Supplier<UUID> uuidSupplier = UUID::random;
Consumer<UUID> uuidConsumer = System.out::println;
Stream.generate(uuidSupplier)
.limit(100)
.forEach(uuidConsumer);
对不起,但我不明白在这个例子中供应商和消费者是如何解释 – user1365697
@ user1365697“供应商”解决了当你需要能够告诉图书馆如何根据需要创建对象和消费者'解决了告诉图书馆关于你想要为每个对象执行的动作的问题。 –
如果我不使用供应商和消费者该怎么样看起来像?在这个例子中,你没有使用它们,所以我有点困惑 – user1365697
你的意思是2个接口'Consumer'和'Supplier'?如果是这样,你读了他们的JavaDocs吗?你读过关于lambda的文章吗? – Thomas
是的,我的意思是2接口消费者和供应商我阅读javadocs,但我不明白他们为什么解决 – user1365697
他们是常见的[功能接口](http://docs.oracle.com/javase/8/docs/api/java /util/function/package-summary.html#package.description)旨在用作[lambda表达式]的目标(https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html)。 – Jesper