【发布时间】:2022-01-24 13:32:45
【问题描述】:
我有这个功能:
public void a(BooleanSupplier param){}
由函数 b 调用:
public void b(Boolean param){
a(param)
}
问题是函数“a”需要BooleanSupplier,但函数b 发送的是布尔值。我想我应该将布尔值转换为 BooleanSupplier,但我无法将一个转换为另一个。
【问题讨论】:
-
a(() -> param);应该可以解决问题。 -
谢谢@Turing85。你能解释一下这个解决方案吗? :)
-
我投了反对票,因为No research
-
这是
BooleanSupplier-interface 的一个非常直接的 lambda 实现。BooleanSupplier是一个没有参数的方法,返回一个Boolean。有关 lambda 语法的详细信息,我建议阅读有关该主题的教程,例如this one fromoracle.com. -
谢谢!我实际上试图阅读 javadoc,但由于我在函数“a”上有一个可选的 BooleanSupplier,所以这个构造 a(()->param) 不起作用,我认为这是我调用它的方式,但现在我可以确认这实际上是我认为的可选问题。再次感谢 Turing85,我会做教程的!
标签: java java-8 functional-programming supplier