Как вызвать MethodInvoke - отражение - PullRequest
0 голосов
/ 19 ноября 2011

Если у меня есть метод, который принимает int[] в качестве параметра, и я хочу вызвать method.invoke для этого, тогда мне нужно сделать следующее

Object[] anArray = {100, 200, 300, 400, 500, 600, 700, 800, 900, 1000};
method.invoke(obj, anArray);

Это так просто, как кажется, что я получаю ошибки?

Привет

1 Ответ

5 голосов
/ 19 ноября 2011

Method.invoke принимает два аргумента.Первой является цель, obj, которая является правильной.Второй - массив , представляющий ноль или более аргументов для фактического метода, который вы пытаетесь вызвать (многие методы имеют более одного параметра).Ваш код должен измениться на:

method.invoke(obj, new Object[] { anArray });

Таким образом, вы говорите: «вызовите этот метод с одним аргументом, а этот аргумент является массивом. Это отличается от высказывания« вызовите этот метод с 10 аргументами »."(по одному на каждый элемент в вашем массиве).

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