如何创建ConfigValue表示Typesafe.Config中的对象

vin*_*t_f 3 scala akka typesafe-config

com.typesafe.config.Config中有一个接口:

Config withValue(String path,ConfigValue value);

假设现在我想将我自己定义的类的对象保存到Config中,我该怎么办?函数ConfigValueFactory.fromAnyRef失败

我的代码看起来像: val value = Resource(100) config.withValue("resource", ConfigValueFactory.fromAnyRef(value))

这是例外:

方法调用者中的错误:无效以创建ConfigValue:Resource(100)com.typesafe.config.ConfigException $ BugOrBroken:方法调用者中的错误:无效创建ConfigValue:资源(100)at com.typesafe.config.impl .ConfigImpl.fromAnyRef(ConfigImpl.java:275)

Eug*_*nev 6

您不能将任意对象放入类型安全配置中.如果您将从AnyAfRef实现,您将只能传递基元+贴图.这对我有用:

  val config = ConfigFactory.empty()

  case class Resource(i: Int)

  val value = 100
  //val value = Resource(100) // Failed 

  println(config.withValue("resource",
    ConfigValueFactory.fromAnyRef(value)))
Run Code Online (Sandbox Code Playgroud)