日期:2014-05-20 浏览次数:20847 次
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);