我正在使用JAXB从项目中的其他应用程序中读取字符串xml数据。
他们提供了他们的appdata.jar。 (我无法控制他们的课程)。 他们有MessgeBody。在MessageBody中,他们定义了一个私有实例变量,而没有getter和setter。由于这个原因,我无法获得perticular类的实例.getter n setter的其余字段是可访问的。 我尝试了Java Reflection,但无法正常工作。 这是我的代码-
Class Test{
public void parseXMLStr(){
String xmlStr="<xml><first></first><second></second><third></third></xml>"
//I am able to get values of first and second as getter and setter defined.
First f =getMessageBody().getFirst();
f.dosomething().. //working
Second s =getMessageBody().getSecond();
s.dosomething()...//working
}
appdata.jar(其他应用程序)包含MessageBody,
class MessageBody{
private First first;//getter setter provided
private Second second;//getter setter provided
private Third third;//getter setter NOT Provided
}
如何获取第三类实例并在其中访问变量。
我尝试如下进行Java反射,但是我得到了空指针异常(尽管有数据)
Field f = obj.getClass().getDeclaredField("third");
f.setAccessible(true);
Third t = (Third) f.get(obj);
t.getName();//here getting nullpointer exception