还有另一个问题只解释了传递函数引用,但这并没有回答下面关于这个 Java 赋值如何工作、转换到这个Supplier
对象以及何时发生的问题。
我有以下代码片段并且有点难以理解它,可能我不是唯一一个。有人可以给出这个代码的“傻瓜”解释(供应商模式和使用双冒号(::
)运算符的赋值。Java 什么时候真正进行函数调用?我的期望是它objectFactorySupplier
变成一个函数指针。
private Supplier<ObjectFactory> getObjectFactorySupplier(String name) {
// how does this assignment work?
Supplier<ObjectFactory> objectFactorySupplier = this::getObjectFactory;
...
return objectFactorySupplier;
}
private ObjectFactory getObjectFactory() {
ObjectFactory factory = new ObjectFactorySupplier().get();
...
return factory;
}