您将不得不使用
m.invoke(null, (Object)new String[]{});
该
invoke(Object,Object...)方法接受
Object...。
(更正)
String[]传递的数组按原样使用
Object[]并且为空,因此它没有要传递给方法调用的元素。通过将其强制转换为对象
Object,这就是包装中的唯一元素
Object[]。
这是由于数组协方差。你可以做
public static void method(Object[] a) {}...method(new String[] {});
因为a
String[]是
Object[]。
System.out.println(new String[]{} instanceof Object[]); // returns true
另外,您也可以将其包装
String[]在
Object[]
m.invoke(null, new Object[]{new String[]{}});
然后,该方法将使用
Object[]as中的元素作为方法调用的参数。
注意调用的StackOverflowError
main(..)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)