如何理解这两行scala代码?

时间:2016-10-01 04:34:53

标签: scala

在通过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构造函数重载的文章,但仍无法解释它。

1 个答案:

答案 0 :(得分:2)

主构造函数obj.x实际上有两个参数列表:第一个是非隐式参数,是空的。即这和他们写ExtensionKey[T <: Extension](implicit m: ClassTag[T])的情况完全一样。