【发布时间】:2018-01-10 23:28:52
【问题描述】:
我正在尝试将 Pureconfig 合并到我的用例中以进行类型安全配置。成功地将 HOCON .conf 映射到案例类类型。但是,如果我必须在对象定义方面限制我的类型而没有副作用(即,抑制默认的 apply() 和 copy()),我将使用以下案例类的定义方法:
sealed abstract case class someConfig(name:String)
object someConfig{
def apply(name:String):Option[someConfig]={
if(Option(name).isDefined && name.nonEmpty){
Some(new someConfig(name){})
} else {
None
}
}
}
为了支持 Option[_] 类型,我正在考虑使用隐式 ConfigReader。这种方法似乎行得通,我需要更多的时间来处理对象映射和实例化的配置键。
到目前为止,我搜索过的示例似乎并没有引起这种需求的共鸣。但是,请务必在对象成员上使用 Option[_]。尝试浏览 Pureconfig git repo 中的代码示例。
有人可以建议一种可以支持 Option[T] 的方法,其中 T 是复合自定义类型吗?而且我不必处理成员变量名称来配置键映射等,即避免必要的样板!
【问题讨论】:
标签: class case abstract sealed pureconfig