作者:手机用户2502931101 | 来源:互联网 | 2023-01-27 20:58
我理解我的第一个第二个例子使用传入一个参数的lambda函数.我试图理解为什么它与我的第二个样板示例不同,后者使用双冒号而不是lambda.(仍然是一个kotlin newb试图将我的脑袋缠绕在来自蟒蛇背景的双冒号)
class Service(services: PluginServiceHub) {
init {
services.registerFlowInitiator(Landlord::class.java) { Landlord(it) }
}
}
VS
class Service(services: PluginServiceHub) {
init {
services.registerFlowInitiator(IssuanceRequester::class.java, ::Issuer)
}
}
这究竟::Issuer
代表什么?
1> hotkey..:
假设有一个类Issuer
,::Issuer
将是对其构造函数的函数引用.采用适当数量的参数(在本例中为一个)的构造函数将被解析和使用,这相当于一个lambda { Issuer(it) }
.
如果没有这样的类,Issuer
则将使用名为并接受一个参数的函数(如果存在).
请参阅:Kotlin中是否有构造函数引用?