Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > ArrayList<Class<MyClass>>в цикле получить MyClassы


Автор: javalx 29.12.2019, 22:14
Добрый день!

Есть некий класс
Код

public class MyClass<T> {
    public static void foo() {
        System.out.println("foo");
    }
}
public class MyClass2 extends MyClass {
    public static void foo() {
        System.out.println("foo");
    }
}


Код

public class Main {

    public static void main(String[] args) { new Main().start(); }

    public void start() {
        ArrayList<Class<? extends MyClass>> list = new ArrayList<>();
        list.add(MyClass.class);
        list.add(MyClass2.class);
        for (Class<? extends MyClass> c: list) {
            //System.out.println("c = " + (MyClass) c.foo);
        }
}

Как получить все MyClass'ы из list'a и вызвать у них статичный метод foo?

Автор: LSD 30.12.2019, 18:46
Цитата(javalx @  29.12.2019,  23:14 Найти цитируемый пост)
Как получить все MyClass'ы из list'a и вызвать у них статичный метод foo?

Через рефлексию:
Код

    public static void invokeFoo(Class<?> clazz) throws Exception {
        Method method = clazz.getMethod("foo");
        method.invoke(null);
    }

Автор: javalx 6.1.2020, 00:22
Спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)