Есть один метод получения, скажем, getAddressText1(), который я хочу вызвать в pojo, который разработан следующим образом:
public class AccountDetails{
public String name;
public Address address;
.
.
//getters and setters
}
Теперь этот addressText1 внутри Address
что-то типа
public class Address{
public String addressText1;
.
.
//getters and setters
}
теперь, если я вызову getAddressText1 в AccountDetails, он вызовет исключение methodnotfound.
Поскольку это отражение, у меня нет элемента управления, который можно было бы применить напрямую к Address.
Пожалуйста, ответьте, если знаете решение.
Спасибо!!
@Stultuske, все это общее, я получу имя метода из файла свойств. позволяет нам предположить -: сначала я получу getName (), затем я должен применить его через функцию вызова как getName (). invoke (accountObject). тогда я получу getAddressText1 (), тогда я буду вызывать его в accountObject как getAddressText1 (). invoke (accountObject)




Если вы хотите получить addressText1 из address, создайте внутри AccountDetails метод, например getAddress (если у вас его еще нет):
public class AccountDetails {
private Address address;
public Address getAddress() {
return this.address;
}
// Other code
}
Тогда вы можете вызвать:
String addressText1 = myAccountVariable.getAddress().getAddressText1();
Где myAccountVariable - это объект AccountDetails.
Я делаю это через Reflection API. Все должно быть сделано во время выполнения.
@RishabhBansal, это чушь. вызов геттера - это среда выполнения. использование отражения для этого пытается избавиться от надоедливого комара с помощью ядерной боеголовки.
@Stultuske Пожалуйста, сначала попытайтесь понять вопрос. вы получаете метод откуда-то еще, например getName (), getAddressText1 (). Нам просто нужно сопоставить с основным POJO, которым в нашем случае является AccountDetail. И поскольку у нас нет явного отображения адреса 1, исключение будет методом не найден.
итак, вы хотите из своего AccountDetails "волшебным образом" получить addressText1? что еще более странно, вы хотите на основе вызова getName () получить addressText1? Что, если позже будет добавлен второй адрес?
Вы верите, что кодирование волшебным образом дает вам данные ..? Сначала внимательно прочтите требование, а затем сделайте подобные комментарии ... Я думаю, вам следует сначала подготовить свои знания к Reflection API.
Если вы хотите получить доступ к getAddressText1() внутри вашего AccountDetails, вы просто создаете метод получения объекта Address, который вы определили в своем классе AccountDetails.
После использования метода getAddress() вы можете вызвать метод, определенный в классе Address, как;
String address = accountDetailsObj.getAddress().getAddressText1();
accountDetailsObj является объектом класса AccountDetails.
ему не нужно создавать геттер, согласно его описанию, есть один
так что сначала получите адрес, затем получите addressText. ваши переменные, вероятно, следует объявить частными