我正在尝试为XMLAdapter
我的一个对象创建一个类。我需要Getters
从另一个类访问,以便可以从该类的 Getters 填充一些对象,但我无法这样做。
Child
基本上,我想Getter
在XMLAdapter
. 我可以创建一个Child
类的对象并访问,但它会导致NULL
. 最初,我Objects
在Child
andParent
类中填充。我想在其中访问相同的值,XML Adapter
所以我想知道是否有办法将类的引用传递给我的XMLAdapter
.
我有以下Parent
将具有值的类:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlTransient
@XmlSeeAlso({Child.class})
public class Parent{
private String eventID;
}
以下是我的Child
课程,将在编组期间用于创建XML
:
@XmlRootElement(name = "child")
@XmlType(name = "child", propOrder = { "name","extension"})
public class Child extends Parent
{
@XmlElement (name = "name")
private String name;
@JsonIgnore
@XmlJavaTypeAdapter (ExtensionAdapter.class)
@XmlElement (name = "extension")
private Extension extension;
}
以下是我的扩展类:
@NoArgsConstructor
@AllArgsConstructor
@XmlAccessorType(XmlAccessType.FIELD)
public class Extension {
private String eventID;
}
以下是我的XMLAdapter
课:
public class ExtensionAdapter extends XmlAdapter<Child, Extension> {
@Override
public Extension unmarshal(Child valueType) throws Exception {
System.out.println("UN-MARSHALLING");
return null;
}
@Override
public Child marshal(Extension boundType) throws Exception {
System.out.println("MARSHALLING");
System.out.println(boundType);
//If I create the New child type then I am unable to access the eventID from its getter as Child class is nulll
Child be = new Child();
be.setEventID(boundType.getEventID());
return be;
}
}
基本上,我想访问其中的Child
glassGetter
方法,XMLAdapter
以便我可以用它来填充我的Extension
类EventID
。我尝试了很多东西,但没有任何效果,所以我在这里发帖。
有没有办法可以将我的Child
类作为参数传递给它,XMLAdapter
以便我可以从中访问Getter
方法?因为如果我创建一个新的Child
类对象,那么它的所有Getter
方法都是空的。但是,一开始我要填充Parent
和Child
类(名称和事件ID)中的所有字段。我只想Extension
使用eventID
.XMLAdapter
我希望我能够解释需要。如果您有任何建议或示例代码,那么它将非常有用。
请注意:我在这里使用了非常示例的代码。我知道无论我想要实现什么,都可以使用正确的 POJO 和 JAXB 注释来实现,但我的实际类很复杂,我不允许修改它。我只能添加新的注释。因此,我正在尝试使用XMLAdapter
.