Как использовать getMethod () с примитивными типами? - PullRequest
62 голосов
/ 17 февраля 2011

Это класс:

class Foo {
  public void bar(int a, Object b) {
  }
}

Теперь я пытаюсь "отразить" этот метод из класса:

Class c = Foo.class;
Class[] types = { ... }; // what should be here?
Method m = c.getMethod("bar", types);

Ответы [ 2 ]

87 голосов
/ 17 февраля 2011

Там просто int.class.

Class[] types = { int.class, Object.class };

Альтернативой является Integer.TYPE.

Class[] types = { Integer.TYPE, Object.class };

То же самое относится и к другим примитивам.

2 голосов
/ 03 марта 2018

Параметр метода является примитивом short, а не объектом Short.

Reflection не найдет метод, потому что вы указали объект short. Параметры в getMethod() должны точно соответствовать.

EDIT: Вопрос был изменен. Первоначально вопрос заключался в том, чтобы найти метод, который использует один простой примитив.

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