- Java code
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);
求注释
请一句一句翻译,谢谢!
------解决方案--------------------
copy自 JDK1.6.0中文版
- HTML code
Class<Calculator2> clazz=Calculator2.class;java.lang.Object java.lang.Class<T>类型参数:T - 由此 Class 对象建模的类的类型。例如,String.class 的类型是 Class<String>。如果将被建模的类未知,则使用 Class<?>getDeclaredMethodpublic 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});invokepublic Object invoke(Object obj, Object... args)对带有指定参数的指定对象调用由此 Method 对象表示的底层方法参数:obj - 从中调用底层方法的对象args - 用于方法调用的参数 返回:使用参数 args 在 obj 上指派该对象所表示方法的结果 Object result=method.invoke(cal2,new Object[]{1,2});下面这个找junitAPI吧 assertEquals(3,result);