Scala使用SnakeYAML读取yaml文件
class MessageConfig { @BeanProperty var name: String = _ @BeanProperty var sex: String = _}Exception in thread "main" java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.lagou.entity.MessageConfig at YamlTest$delayedInit$body.apply(YamlTest.scala:32) at scala.Function0$class.apply$mcV$sp(Function0.scala:40) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.apply(App.scala:71) at scala.App$$anonfun$main$1.apply(App.scala:71) at scala.collection.immutable.List.foreach(List.scala:318) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32) at scala.App$class.main(App.scala:71) at YamlTest$.main(YamlTest.scala:15) at YamlTest.main(YamlTest.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)读yaml字符串
val text2 = """ name: you sex: male """ val yaml = new Yaml val test = yaml.load(text2).asInstanceOf[java.util.Map[String, Any]] println(test.get("name"))读文件
object YamlTest extends App{ val file = "D:\\test.yml" val input = new FileInputStream(new File(file)) val yaml = new Yaml val test = yaml.load(input).asInstanceOf[java.util.Map[String, Any]] println(test.get("name"))}注意
在解析的时候如果在yaml文件中存储了true、yes这些这两种关键字,解析的结果会把它变成Boolean类型…….
不理解,即使设置了String,解析后还是Boolean。
2016-03-14 14:00:01 hzct
作者:dantezhao | 简书 | CSDN | GITHUB 文章推荐:http://dantezhao.com/readme 个人主页:http://dantezhao.com 文章可以转载, 但必须以超链接形式标明文章原始出处和作者信息