Invoke method with an array parameter using reflection

后端 未结 3 1527
不知归路
不知归路 2021-01-17 11:25

I am attempting to write a method the executes a static method from another class by passing an array of strings as arguments to the method.

Here\'s what I have:

3条回答
  •  我在风中等你
    2021-01-17 12:00

    You have two problems:

    1. The target parameter type is String[], but you're passing in a Object[]
    2. You're passing in the whole command array as arguments, which includes the method name

    The problems are all in the inner try block, so I show only that code.

    String[] args = Arrays.copyOfRange(command, 1, command.length - 1);
    method.invoke(null, new Object[]{args}); // must prevent expansion into varargs
    

    Thanks to Perception for reminding me of the varargs issue

提交回复
热议问题