假设我有以下功能界面:
public interface TemperatureObserver {
void react(BigDecimal t);
}
Run Code Online (Sandbox Code Playgroud)
然后在另一个类中已经填充ArrayList了类型的对象TemperatureObserver.假设temp是a BigDecimal,我可以react使用以下命令在循环中调用:
observers.forEach(item -> item.react(temp));
Run Code Online (Sandbox Code Playgroud)
我的问题:我可以使用上面代码的方法参考吗?
以下不起作用:
observers.forEach(TemperatureObserver::react);
Run Code Online (Sandbox Code Playgroud)
错误消息告诉我
forEach在Arraylist observers该类型中不适用TemperatureObserver::reactTemperatureObserver 没有定义方法 react(TemperatureObserver)很公平,正如forEach预期的那样,作为一个参数a Consumer<? super TemperatureObserver>,我的界面尽管是功能性的,但Consumer由于react(BigDecimal在我的情况下)的不同参数而不符合.
那么这可以解决,还是一个lambda没有相应的方法参考的情况?