Kotlin:类似的类的双冒号与Lambda

我明白我的第一个第二个例子使用一个lambda函数传入一个单一的参数。我试图理解为什么它会不同于我的第二个样板使用双冒号而不是lambda。 (仍然是一个kotlin newb试图把我的头围绕来自python背景的双冒号)

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究竟代表什么?

假设有一个类Issuer::Issuer将是一个对其构造函数的函数引用 。 采用适当数量的参数(本例中为一个)的构造函数将被解析和使用,相当于一个lambda { Issuer(it) }

如果没有这样的类,那么将使用一个名为Issuer的函数并使用一个参数(如果存在的话)。

请参阅: Kotlin中是否有构造函数引用?