2010-10-30 2 views
0

Я действительно смотрю на получение метода, имя которого хранится в строке «methodName», из класса «CC1» с использованием Java Reflection.Представление пустого массива классов

Method actualMethod= CC1.getMethod(methodName, parameterTypes);

Это синтаксис. Проблема заключается в том, что метод не принимает никакого параметра. Как я могу представить это в параметрах Types?

, где parameterTypes является массив класса

Аналогичным образом, приведенный ниже код будет вызывать этот метод.

Object retobj = actaulMethod.invoke(actualObject, arglist);

список аргументов является массив объектов, которые вновь не будет ничего.

Если что-то неясно, спрашивайте. Благодарю .

+0

Тот же метод работал и для метода вызова. Спасибо, парни. – bsoundra

+0

Ваше имя неверное. Вы имеете в виду пустой массив классов, а не нулевой класс ... что является противоречием в терминах. – EJP

+0

@ EJP: вы правы. Я соответствующим образом изменил заголовок. – bsoundra

ответ

3

Не пропустите второй аргумент:

CC1.getMethod(methodName); 

(Это делает использование varargs)

Это эквивалентно переходу пустой массив:

CC1.getMethod(methodName, new Class[] {}); 
+0

Не передать второй аргумент, даст ошибку компилятора. Поскольку у меня есть большая база кода, я не смогу проверить код, передав также пустой массив. – bsoundra

+2

это не приведет к ошибке времени компиляции, если вы не используете Java 1.4 – Bozho

1

Подпись:

Method getMethod(String name, Class... parameterTypes) 

Так что просто оставьте второй параметр, и он должен работать. то есть

Method actualMethod= CC1.getMethod(methodName); 
Смежные вопросы