Получить размер 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());
→ Ссылка