加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

为什么我得到Java.lang.IllegalArgumentException:使用Reflecti

发布时间:2020-12-15 04:49:31 所属栏目:Java 来源:网络整理
导读:参见英文答案 Wrong number of arguments error when invoking a method????????????????????????????????????5个 我在类中有一个方法如下 class Sample{ public void doSomething(String ... values) { //do something } public void doSomething(Integer v
参见英文答案 > Wrong number of arguments error when invoking a method????????????????????????????????????5个
我在类中有一个方法如下

class Sample{

    public void doSomething(String ... values) {

      //do something
    }

    public void doSomething(Integer value) {

    }

  }


//other methods
.
.
.

现在我得到IllegalArgumentException:下面的参数数量错误

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

解决方法

将String数组包装在Object数组中:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读