0

我发现了一些片段如下:

import org.json4s.DefaultFormats
import org.json4s.jackson.JsonMethods._

import scala.io.Source
import scala.reflect.ClassTag

class ConfigLoader[C: ClassTag : Manifest](filePath: String) {

  def loadFromFile(): C = {
    implicit val formats = DefaultFormats
    parse(Source.fromFile(filePath).mkString, false).extract[C]
  }

}

泛型类型的含义是C: ClassTag : Manifest什么?

4

1 回答 1

0

语法C: ClassTag(implicit ct: ClassTag[C]).

即类构造函数的完整形式是

class ConfigLoader[C](filePath: String)(implicit ct: ClassTag[C], m: Manifest[C]) { ... }

实际上,这意味着在 的定义中,需要和的ConfigLoader实例,因此必须将它们作为参数提供给构造函数。ClassTag[C]Manifest[C]

于 2020-05-24T19:05:22.987 回答