String... 本质是String[], 在使用反射获取方法的时候需要使用String[].class
调用invoke方法时候需要用Object[]
public class A {
public void a(String... str) {
System.out.println("a");
}
//获取反射对象的方法
public static void main(String[] argos) {
Object o = A.class.newInstance();
Method method = A.class.getDeclaredMethod("a", new Class[]{String[].class});
//注意:invoke方法参数虽然是(Object o, Object... args),但是此处需要用Object[],不然报错
method.invoke(o, new Object[]{new String[]{"123", "345"}});
}
}
本文介绍Java中如何使用反射来处理可变参数方法。通过实例演示了如何获取方法的声明,并正确地调用带有可变参数的方法。特别强调了在调用方法时参数类型的转换。
1214

被折叠的 条评论
为什么被折叠?



