Получить размер List
Господа, помогите разобраться с рефлексией. Есть SuperClass класс и класс SomeClass:
public class SuperClass {
private List<SomeClass> listClass;
public SuperClass(){
this.listClass = new ArrayList<>();
}
// ... getter and setter listClass
}
public class SomeClass {}
Как с помощью рефлексии получить размер свойства listClass класса SuperClass? Желательно через вызов метода getListClass.
Ответы (1 шт):
Автор решения: Ангелина Никонова
→ Ссылка
Получение кол-ва элементов списка из Getter метода другого класса, полученного и вызванного рефлексией.
// Получаем метод .getListClass()
Method method = SuperClass.class.getDeclaredMethod("getListClass");
// Открываем доступ к методу
method.setAccessible(true);
// Вызываем данный метод, результат сохраняем (null если method статичный, объект класса SomeClass, на котором мы вызываем данный метод)
List<SomeClass> list = (List<SomeClass>) method.invoke(null);
// Закрываем доступ к методу
method.setAccessible(false);
// Выводим количество полей в данном списке
System.out.println(list.size());