我正在尝试创建一个XMLAdapter
我的一个对象的类。我需要访问Getters
来自另一个类,以便可以从该类的 Getters` 填充某些对象,但我无法这样做。
基本上,我想访问我的Child
class Getter
内的方法XMLAdapter
。我可以创建一个对象Child
类和访问,但它的结果是NULL
。最初,我正在填充Objects
in the Child
and Parent
班级。我想访问相同的值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
class:
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
glass Getter
内的方法XMLAdapter
这样我就可以填充我的Extension
class EventID
接着就,随即。我尝试了很多方法,但没有任何效果,所以我在这里发帖。
有什么办法可以让我通过Child
类作为参数XMLAdapter
这样我就可以访问Getter
方法来自吗?因为如果我创建一个新对象Child
类然后是它的所有Getter
方法为空。但是一开始我就填充了中的所有字段Parent
and Child
类(名称和事件 ID)。我只想在其中填充相同的值Extension
class eventID
使用XMLAdapter
.
我希望我能够解释这一需求。如果您有任何建议或示例代码,那么它将非常有用。
请注意:我在这里使用了非常示例代码。我知道我想要实现的任何目标都可以使用正确的 POJO 和 JAXB 注释来实现,但我的实际类很复杂,我不允许修改它。我所能添加的只是新的注释。因此,我试图使用XMLAdapter
.