Scala 使用PureConfig和精炼的?

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

我有下面的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 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在编译时使用隐式定义为给定类型创建解码器。