我有一个scala应用程序,需要读取yaml文件并将其加载到scala case类中。我正在使用snakeyaml来完成这项工作,但似乎加载函数不能使用我的case类的构造函数。下面是我正在做的一个例子:
YAML文件:
name: "Jon"
age: 50
gender: "male"
案例类:
final case class Person(
name: String,
age: Int,
gender: String
)
提取和装载山药的代码:
val text: String = scala.io.Source.fromFile(file).mkString
val yaml = new Yaml(new Constructor(implicitly[ClassTag[T]].runtimeClass))
yaml.load(text).asInstanceOf[T]
我得到以下错误:
org.yaml.snakeyaml.constructor.ConstructorException: Can't construct a java object for tag:yaml.org,2002:case_classes.Person; exception=java.lang.InstantiationException: NoSuchMethodException:case_classes.Person.<init>()
我能做些什么来消除错误?