我有这个:
import java.util.function.*;
public class FluentApi {
public Integer myfunc(){
return Integer.valueOf(1);
}
public void fSupplier(Supplier<Integer> si){
System.out.println(si.get());
}
public void callFunc(){
fSupplier(myfunc); // compilation failure
}
}上面写着:myfunc cannot be resolved to a variableJava(33554515)
如果我将它更改为lambda函数,那么它将编译:
public void callFunc(){
fSupplier(()->Integer.valueOf(1));
}那么这里的核心区别是什么呢?如何在这里使用非lambda实现?
谢谢。
发布于 2022-07-07 01:36:53
发布于 2022-07-07 01:50:27
您的方法有一个Supplier<Integer>类型的参数,因此您可以传递三个选项作为该方法的参数(其思想是传递一个实现函数接口提供者的类的实例):
https://stackoverflow.com/questions/72891384
复制相似问题