Ошибка при вызове метода через отражение - PullRequest
1 голос
/ 13 марта 2012

Ниже приведены два случая методов, которые я вызываю с использованием отражения

actualoutput = mgenerateouput.invoke(outputclassinst,obj); 

obj - это Object Тип массива, который содержит Section Тип объекта в obj[0]

Случай 1:

public Student[] expectedOutputString(Section sec){
        //Object arra[] = Section.makeSection((String[])params[0]);
        ReportCard rc = new ReportCard();
        Student[] exOut = rc.orderClass(sec);
        return exOut;
    }

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

Дело 2:

public Student[] expectedOutputString(Object params[]){
    //Object arra[] = Section.makeSection((String[])params[0]);
    ReportCard rc = new ReportCard();
    Student[] exOut = rc.orderClass((Section)params[0]);
    return exOut;
}

[

Ответы [ 3 ]

1 голос
/ 13 марта 2012

Может быть опечатка:

rc.orderClass((Section)params[0]);  // was: Second
               ^^^^^^^
0 голосов
/ 14 марта 2012

Почему бы не использовать переменные параметры в случае 2?Нравится:

public Student[] expectedOutputString(Object ... params){
0 голосов
/ 13 марта 2012

Код 2 не объявляет параметр как объект, но как объект [], то есть массив объектов.Таким образом, ваш объект [0] тоже должен быть массивом объектов. Редактировать: Или наоборот: код 2 должен ожидать объект вместо объекта [].

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