62,614
社区成员
发帖
与我相关
我的任务
分享
Calculator2Test cal2=new Calculator2Test();
Class<Calculator2> clazz=Calculator2.class;
Method method=clazz.getDeclaredMethod("add",new Class[]{Integer.TYPE,Integer.TYPE});
method.setAccessible(true);
Object result=method.invoke(cal2,new Object[]{1,2});
assertEquals(3,result);
Class<Calculator2> clazz=Calculator2.class;
java.lang.Object
java.lang.Class<T>
类型参数:
T - 由此 Class 对象建模的类的类型。例如,String.class 的类型是 Class<String>。如果将被建模的类未知,则使用 Class<?>
getDeclaredMethod
public Method getDeclaredMethod(String name,
Class<?>... parameterTypes)
返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法。name 参数是一个 String,它指定所需方法的简称,parameterTypes 参数是 Class 对象的一个数组,它按声明顺序标识该方法的形参类型。
参数:
name - 方法名
parameterTypes - 参数数组
返回:
该类与指定名和参数相匹配的方法的 Method 对象
Method method=clazz.getDeclaredMethod("add",new Class[]{Integer.TYPE,Integer.TYPE});
invoke
public Object invoke(Object obj,
Object... args)
对带有指定参数的指定对象调用由此 Method 对象表示的底层方法
参数:
obj - 从中调用底层方法的对象
args - 用于方法调用的参数
返回:
使用参数 args 在 obj 上指派该对象所表示方法的结果
Object result=method.invoke(cal2,new Object[]{1,2});
下面这个找junitAPI吧
assertEquals(3,result);