使用类型安全配置和configs
("com.github.kxbmap" %% "configs" % "0.4.4",
)库
def loadConfiguration[T <: Product: TypeTag]: T = {
import configs.syntax._
val conf = ConfigFactory.load
conf.get[MyCaseClass]
应该加载配置,但失败为
T is not a class
。如何实际上将
T
转换为适合configs
的java类? 最佳答案
我建议您将TypeTag
替换为ClassTag
,因为您没有使用TypeTag
。如果是,则可以将它们组合:T <: Product : TypeTag : ClassTag]
或使用以下解决方案:https://stackoverflow.com/a/18730004/9204
从这个问题出发,我假定给定一个Java Class
对象(或包裹一个ClassTag
对象),“配置”就可以工作。但是在检查了文档之后,我发现它没有,因此以上内容无关。
相反,您应该使用
def loadConfiguration[T : Configs]: T = ...