Scala 使用PureConfig和精炼的?
我有下面的conf文件:Scala 使用PureConfig和精炼的?,scala,pureconfig,refined,Scala,Pureconfig,Refined,我有下面的conf文件: connection.port = 8080 connection.interface = "127.0.0.1" 我试图在读取此文件时使用精炼和精炼的pureconfig。我有以下课程: import com.api.models.{Config, Connection} import com.typesafe.config.ConfigFactory import pureconfig.error.ConfigReaderFailures import purec
connection.port = 8080
connection.interface = "127.0.0.1"
我试图在读取此文件时使用精炼和精炼的pureconfig。我有以下课程:
import com.api.models.{Config, Connection}
import com.typesafe.config.ConfigFactory
import pureconfig.error.ConfigReaderFailures
import pureconfig.loadConfig
object Configuration {
val config = ConfigFactory.load()
val stuff: Either[ConfigReaderFailures, Connection] = loadConfig[Connection](config)
stuff match {
case Left(left) => println(left)
case Right(right) => println(right)
}
}
这是阅读下面的案例课:
case class Connection(port: Int, interface: String)
但是,当我尝试编译此文件时,会出现以下错误:
Error:(19, 79) could not find implicit value for parameter reader: pureconfig.Derivation[pureconfig.ConfigReader[com.api.models.Connection]]
val stuff: Either[ConfigReaderFailures, Connection] = loadConfig[Connection](config)
我真的不知道如何创建这样一个隐式导入?很可能您缺少一个导入,可能是这个导入:
import pureconfig.generic.auto.\uu
看
如果您对这里发生的事情感兴趣,可以研究“类型类派生”
编辑:请注意,现在这与优化类型无关,因为您的代码没有使用它们。您的导入是什么?添加
scalacOptions+=“-Xmacro设置:具体化派生”
进行构建以获得更好的隐式提示。看,我已经加上了,没有人会犯同样的错误@多米尼克格-我已经添加了进口,谢谢!我遇到了类似的问题,添加此导入语句对我很有效。但是,IDE显示此导入未使用。你知道为什么导入如此重要吗?我想你说的“IDE”是指intellij?这是非常臭名昭著的问题与隐含的价值观。基本上intellij有自己的scala编译器来检查您的编码器,有时它完全是错的(您甚至可以在intellij用红色下划线代码的情况下工作得非常好)。导入本身很重要,因为pureconfig在编译时使用隐式定义为给定类型创建解码器。