在我的POJO中使用@XStreamOmitField似乎没有任何影响.注释的字段仍然被暴露在xml或json表示中.
@XStreamAlias("Pojo")
@Entity
public class Pojo {
private String name;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long key;
@XStreamOmitField
private String hidden;
public Pojo(String name,String hidden) {
this.name = name;
this.hidden = hidden;
}
}
并在ServerResource中
@Get
public Pojo test() {
Pojo pj= new Pojo("hansi","hinter");
return pj;
}
得到我
<com.myComp.ORMTest.Pojo> <name>hansi</name> <hidden>hinter</hidden> </com.myComp.ORMTest.Pojo>
任何想法为什么注释被忽略?
解决方法
你必须告诉XStream来明确处理注释:
XStream xstream = new XStream(); xstream.processAnnotations(MyClass.class);
或者,您应该添加此代码来告诉XStream处理所有注释:
xstream.autodetectAnnotations(true);