jaxb 映射 空字段_JAXB和未映射的属性
jaxb 映射 空字段
JAXB(JSR-222)是例外配置,這意味著存在默認(rèn)映射應(yīng)用于域?qū)ο蟆?這意味著有時(shí)您需要顯式排除字段/屬性。 在這篇文章中,我將討論如何使用@XmlTransient或@XmlAccessorType(XmlAccessType.NONE)以及何時(shí)適當(dāng)使用每個(gè)選項(xiàng)。@XmlTransient
當(dāng)使用@XmlTransient標(biāo)記字段/屬性時(shí),您明確地告訴您的JAXB實(shí)現(xiàn)將其視為未映射的屬性。 當(dāng)少于一半的字段/屬性未映射時(shí),這很有用。
package blog.unmapped;import java.util.List; import javax.xml.bind.annotation.*;@XmlAccessorType(XmlAccessType.FIELD) public class Customer {@XmlTransientprivate int id;private String firstName;private String lastName;private Address billingAddress;private Address shippingAddress;private List<PhoneNumber> phoneNumbers;}如果未映射一半以上的字段/屬性,則由于異常,我們將停止獲得配置的好處,因?yàn)榕c映射映射的屬性相比,我們需要做更多的工作以使用@XmlTransient排除屬性。 接下來,我將演示如何在此用例中利用@XmlAccessorType(XmlAccessType.NONE)。
package blog.unmapped;import java.util.List; import javax.xml.bind.annotation.*;@XmlAccessorType(XmlAccessType.FIELD) public class Customer {@XmlTransientprivate int id;private String firstName;private String lastName;@XmlTransientprivate Address billingAddress;@XmlTransientprivate Address shippingAddress;@XmlTransientprivate List<PhoneNumber> phoneNumbers;}@XmlAccessorType(XmlAccessType.NONE)
通過設(shè)置@XmlAccessorType(XmlAccessType.NONE),我們將通過例外禁用配置。 現(xiàn)在,將僅映射顯式映射的屬性。 當(dāng)少于一半的域?qū)ο蟮淖侄?屬性被映射時(shí),這很有用。
package blog.unmapped;import java.util.List; import javax.xml.bind.annotation.*;@XmlAccessorType(XmlAccessType.FIELD) public class Customer {@XmlTransientprivate int id;private String firstName;private String lastName;@XmlTransientprivate Address billingAddress;@XmlTransientprivate Address shippingAddress;@XmlTransientprivate List<PhoneNumber> phoneNumbers;}進(jìn)一步閱讀
如果您喜歡這篇文章,那么您還喜歡:
- 使用JAXB的@XmlAccessorType配置字段或?qū)傩栽L問
- 使用@XmlTransient忽略繼承
Java XML和JSON綁定博客中的JCG合作伙伴 Blaise Doughan的參考: JAXB和未映射的屬性 。
翻譯自: https://www.javacodegeeks.com/2012/04/jaxb-and-unmapped-properties.html
jaxb 映射 空字段
總結(jié)
以上是生活随笔為你收集整理的jaxb 映射 空字段_JAXB和未映射的属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 8 Streams:过滤和谓词
- 下一篇: teamcity_TeamCity构建依