Why do I get Java Lang.illegalargumentexception: wrong number of parameters when calling method with varargs using reflection

See English answers > wrong number of arguments error when invoking a method

class Sample{

    public void doSomething(String ... values) {

      //do something
    }

    public void doSomething(Integer value) {

    }

  }


//other methods
.
.
.

Now I get the illegalargumentexception: the number of parameters below is wrong

Sample object = new Sample();
Method m = object.getClass().getmethod( "doSomething",String[].class );
String[] arr = {"v1","v2"};
m.invoke( object,arr ) // exception here

Solution

Wrap the string array in the object array:

Sample object = new Sample();
Method m = object.getClass().getmethod("doSomething",String[].class);
String[] arr = {"v1","v2"};
m.invoke(object,new Object[] {arr});
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>