Java 在编组过程中忽略元素,而不使用@XmlTransient
在编组时是否可以忽略某些元素而不使用@XmlTransientJava 在编组过程中忽略元素,而不使用@XmlTransient,java,xml,jaxb,Java,Xml,Jaxb,在编组时是否可以忽略某些元素而不使用@XmlTransient 不包含的原因是,其他使用xml bean的开发人员可能希望封送这些元素。如果要从xml中排除某些字段,可以将其值设置为null。 空字段未编组为XML 例子: DTO: 逻辑: Customer customerInstance = ...; // some business logic with Customer instance //... business logic customerInstance.setA(null);
不包含的原因是,其他使用xml bean的开发人员可能希望封送这些元素。如果要从xml中排除某些字段,可以将其值设置为null。 空字段未编组为XML 例子: DTO: 逻辑:
Customer customerInstance = ...; // some business logic with Customer instance
//... business logic
customerInstance.setA(null); // set null before marshalling
// marshalling
属性a在XML中将不存在
我认为简单的答案是创建另一类没有这些字段的客户模型
class CustomerA{
@XmlElement
private String name;
//@XmlElement // Element that I do not want to keep
//Private Date dob;
}
我所需要做的就是将值设置到CustomerA中,因为java传递对象的值引用,所以我只产生一点引用字节
我相信这是最便宜、最简单的方法,我可以控制这个领域。为什么没有?您应该澄清您的需求是什么。没有的原因是其他使用xml bean的开发人员可能希望封送这些元素。我想说,但我的观点是,如果每个开发人员都选择序列化或不序列化,那么您将看到一个大混乱。所以不要这样做..客户customerInstance=新客户;customerInstance.setAnull;对我来说,这听起来像是一个否定
Customer customerInstance = ...; // some business logic with Customer instance
//... business logic
customerInstance.setA(null); // set null before marshalling
// marshalling
class CustomerA{
@XmlElement
private String name;
//@XmlElement // Element that I do not want to keep
//Private Date dob;
}