我有这个简单的scala文件,使用snakeyaml:
object Main extends App {
var a=Map[String,Object]()
a+=("a"->"b")
println(a("a"))
val yaml=new Yaml()
val fileWriter = new FileWriter("d:\\src\\scala\\yaml.txt")
yaml.dump(a,fileWriter)}
我只在yaml.txt中得到了这个
!!scala.collection.immutable.Map$Map1 {}
为什么不是{a: b}
?
答案 0 :(得分:2)
我怀疑发生这种情况是因为SnakeYAML是Java库,并且它不了解Scala特定的集合。因此,要使用该库转储Scala-Map
,应首先将其转换为Java-Map
。这样的代码可能会有所帮助:
import scala.collection.JavaConverters._
...
yaml.dump(a.asJava,fileWriter)
如果您要转储很多不同的Scala集合,则可以考虑为它们实现自定义Representers and Constructors。