h.close()); 会是这样的-6ren">
gpt4 book ai didi

java - "Good"使用 Stream API 对每个对象调用方法的方法

转载 作者:IT老高 更新时间:2023-10-28 20:31:53 26 4
gpt4 key购买 nike

是否可以在消费者中运行方法,就像方法引用一样,但在传递给消费者的对象上:

Arrays.stream(log.getHandlers()).forEach(h -> h.close());

会是这样的:

Arrays.stream(log.getHandlers()).forEach(this::close);

但这不起作用...

是否存在方法引用的可能性,或者 x -> x.method() 是这里工作的唯一方法吗?

最佳答案

你不需要这个YourClassName::close 将在传递给消费者的对象上调用 close 方法:

Arrays.stream(log.getHandlers()).forEach(YourClassName::close);

有四种方法引用(Source):

Kind                                                                         Example
---- -------
Reference to a static method ContainingClass::staticMethodName
Reference to an instance method of a particular object containingObject::instanceMethodName
Reference to an instance method of an arbitrary object of a particular type ContainingType::methodName
Reference to a constructor ClassName::new

在你的情况下,你需要第三种。

关于java - "Good"使用 Stream API 对每个对象调用方法的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27534684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com