反射:Method调用参数可变参数的问题
有个关于Method调用可变参数的问题@Service("helloService")
public class Hello {
//需要被反射调用的方法
public void hello(java.lang.Long orderId, java.lang.String status) {
System.out
.println(DateUtil.getCurrentDate("yyyy-MM-dd HH:mm:ss") + ",orderId:" + orderId + ",status:" + status);
}
}
反射调用代码
Method method = classType.getMethod("hello",java.lang.Long.class,java.lang.String.class);
method.invoke(invokeObject, 5l, "abc")
但是由于我hello中的方法中的参数的长度是可变的。
可以考虑采用数组的方式
Method method = classType.getMethod("hello",new Class[]{....});
method.invoke(invokeObject, new Object[]{....});
但是运用数组的方式,我hello中方法中的参数也要调整为Object[].
可否有另外的方法,我参数不用数组,但是程序也不用写死,在getMethod方法的第二个可变参数后动态追加Class,调用的时候,动态追加Object.