Отражение Java и интерфейс в качестве параметра - PullRequest
0 голосов
/ 23 декабря 2010

Я пытаюсь вызвать метод с помощью отражения. Рассматриваемый метод, скажем,

public void someMethod(someInterface<someObject> arg1)

У меня нет доступа к someMethod и someInterface во время выполнения, и я должен вызвать

someclass.getMethod("someMethod", new Class[]{Class.forName("someInterface")})
         .invoke(...)

Но происходит сбой с исключением ClassNotFound для someInterface. Как получить объект Class для интерфейсов?

Ответы [ 2 ]

2 голосов
/ 23 декабря 2010

Это выглядит правильно для меня, концептуально.Проверьте следующее:

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

Последнее, но не менее важное; -)

  • Проверьте правильность написания (с учетом регистра)
1 голос
/ 23 декабря 2010

Я считаю, что вы забыли пакет интерфейса.Вы должны использовать полное имя класса при вызове Class.forName (), т.е. Class.forName ('com.mycompany.MyClass')

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