在通过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
我无法围绕构造函数调用&#34; this()&#34;。否在没有参数的情况下定义构造函数?这是如何运作的?阅读一些关于scala构造函数重载的文章,但仍无法解释它。
答案 0 :(得分:2)
主构造函数obj.x
实际上有两个参数列表:第一个是非隐式参数,是空的。即这和他们写ExtensionKey[T <: Extension](implicit m: ClassTag[T])
的情况完全一样。