2016-10-01 85 views
1

迷迷糊糊的这两行代码,同时通过阿卡 - 演员源读取:如何理解这两行scala代码?

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

我不能环绕构造函数调用“这是我的头()”。没有没有参数定义构造函数的地方?这个怎么用?阅读一些关于scala构造函数重载的文章,但仍然无法解释它。

回答

2

主要构造函数ExtensionKey[T <: Extension](implicit m: ClassTag[T])实际上有两个参数列表:第一个对于非隐式参数是空的。即这与他们写ExtensionKey[T <: Extension]()(implicit m: ClassTag[T])完全一样。