对于JAXB,请参阅添加行为。
基本上,您将JAXB配置为返回通常期望的对象的自定义实例。在下面的示例中,您将创建一个新的对象PersonEx,该对象扩展了JAXB对象Person。这种机制之所以有效,是因为您是从生成的类派生的,而不是完全不更改JAXB类或模式。
package org.acme.foo.impl;class PersonEx extends Person { @Override public void setName(String name) { if(name.length()<3) throw new IllegalArgumentException(); super.setName(name); }}@XmlRegistryclass ObjectFactoryEx extends ObjectFactory { @Override Person createPerson() { return new PersonEx(); }}请注意,@ Override指令在您的JAXB对象发生更改的情况下非常重要-它将防止您的自定义变得 孤立 。



