在阅读akka-actor源文件时,我发现了这两行代码:
abstract class ExtensionKey[T <: Extension](implicit m: ClassTag[T]) extends ExtensionId[T] with ExtensionIdProvider {
def this(clazz: Class[T]) = this()(ClassTag(clazz))在此文件的底部:
https://github.com/akka/akka/blob/master/akka-actor/src/main/scala/akka/actor/Extension.scala
我不能理解构造函数调用"this()“。在没有参数的情况下定义构造函数?这是怎么回事?读了一些关于scala构造函数重载的文章,仍然无法解释它。
发布于 2016-10-01 13:00:00
主构造函数ExtensionKey[T <: Extension](implicit m: ClassTag[T])实际上有两个参数列表:第一个参数列表是空的,用于非隐式参数。也就是说,这与他们编写的ExtensionKey[T <: Extension]()(implicit m: ClassTag[T])完全相同。
https://stackoverflow.com/questions/39803072
复制相似问题