出现该问题的原因是未能解析类,即该类在XML中的注解“PPT”不能被解析。
本质原因有两个:1 .因为你没有一个可以代表XML elments root 的东西,所以当XStream 被解析时XML 文件就查找一个类去匹配root,但如果你没有一个alias/mapping 去定义的话,他就用你那个注解去当做一个类去解析,而其实这个名字的类又不存在,所以报错了。可以这样试一下
@XStreamAlias("root")
或xs.alias(" ",XXX.class);
2.也有可能是你在解析的时候所构造的类的对象不一致所引起。比如你在toxml()时XStreamxs = new XStream(); s =xs.toXML(p);这样已经new了一个xs.。而当你解析时又new了一个,那么也会报上面的错,,XStreamxs = new XStream(); XXX p = (XXX)xs.fromXML(s)。