Вызов закрытой переменной экземпляра из другого приложения, чей установщик геттера недоступен - PullRequest
0 голосов
/ 01 марта 2019

Я читаю строковые данные XML из другого приложения в моем проекте с использованием JAXB.

Они предоставили свой appdata.jar.(Я не контролирую их занятия).У них есть MessgeBody.В MessageBody они определили одну частную переменную экземпляра без методов получения и установки.И из-за этого я не могу получить экземпляр класса perticular. Остальные поля с getter n setter доступны.Я пробовал отражение Java, оно не работает.Вот мой код -

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 as,

 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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...