为什么我得到Java.lang.IllegalArgumentException:使用反射使用varargs调用方法时参数数目错误

灌木丛:

我在下面的课程中有一个方法

  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
罗比·科尼利森(Robby Cornelissen):

将您的String数组包装成一个Object数组:

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

尽管varargs参数可能由多个值组成,但仍被视为一个参数。由于Method.invoke()需要一个参数数组,因此需要将单个varargs参数包装到arguments数组中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我得到错误“ java.lang.ArrayIndexOutOfBoundsException”

我得到错误'java.lang.String'并且不知道为什么

不知道为什么我得到“无法解析方法'getSystemService(java.lang.String)”

为什么我得到此异常java.lang.IllegalArgumentException:比较方法违反了其常规协定

为什么在Netbeans中得到错误:java.lang.IllegalArgumentException和java.lang.reflect.InvocationTargetException?

为什么我得到的异常,而在本地主机给输入“java.lang.IllegalArgumentException异常:目标对象不能为空”?

为什么我得到java.lang.ArithmeticException:除以零

为什么我得到:java.lang.UnsatisfiedLinkError

为什么我得到 java.lang.NumberFormatException: For input string: "∞"?

为什么我得到:java.lang.NullPointerException?

java.lang.IllegalArgumentException:使用反射时参数类型不匹配

为什么我得到java.lang.UnsatisfiedLinkError:即使IntelliJ没有编译错误,java.library.path中也没有jnisgfplib,如何解决?

为什么我收到java.lang.AbstractMethodError错误?

试图调用方法我得到 java.lang.IndexOutOfBoundsException

当我得到java.lang.NoClassDefFoundError什么依赖丢失:使用javax / WS / RS /客户/ RxInvokerProvider错误?

为什么我在 Java 中得到不同的总和和错误

java.lang.ClassCastException:android.widget.TextView。我为什么得到这个?

为什么我得到一个Enum值上的java.lang.NoSuchFieldError :?

为什么我得到java.lang.RuntimeException:无法启动活动ComponentInfo

为什么我的testNG测试得到java.lang.OutOfMemoryError

无法弄清楚为什么我得到了java.lang.NullPointerExceptio

我在尝试检查internetConnection时得到java.lang.NullPointerException?

为什么 java.lang.StackOverflowError: null 当我尝试打印我的实体时

为什么我使用java.lang.Throwable#getStackTrace和java.lang.Thread#getStackTrace获得不同的堆栈跟踪

为什么我在递归 java 方法中收到“线程“main”java.lang.StackOverflowError 中的“异常”?

为什么在使用MediaRouteButton时出现java.lang.IllegalArgumentException:背景不能半透明:#0?

为什么我在Mediaplayer Android应用中收到此错误“ java.lang.IllegalStateException”

为什么我无法执行获取java.lang.IllegalStateException的活动方法?

为什么在MediaPlayer静态方法create()中使用的Uri抛出java.lang.IllegalArgumentException?