Отражение Java - получить универсальный метод из неуниверсального класса - PullRequest
0 голосов
/ 20 марта 2012

возможно ли получить обобщенный (параметризованный) метод из неуниверсального класса с помощью отражения?Вот пример того, что я хочу сделать:

public interface GenericInterface<T> {
    public T publicMethod(T arg);
}

public class NonGenericClassWithGenericMethods {
    private <T> void privateMethod(GenericInterface<T> arg) {

    }
}

public class Generics {
    public static void main(String[] args) {
        try {
            NonGenericClassWithGenericMethods.class.getMethod("privateMethod", GenericInterface.class).setAccessible(true);
        }
        catch(Exception ex) {
            ex.printStackTrace();
        }
    }
}

Если я запускаю Generics, я получаю:

java.lang.NoSuchMethodException: NonGenericClassWithGenericMethods.privateMethod (GenericInterface *)*

Спасибо всем

1 Ответ

7 голосов
/ 20 марта 2012

.getDeclaredMethod() следует использовать вместо .getMethod(), который возвращает только публичные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...