日期:2014-05-20  浏览次数:20809 次

请大侠给翻译一下!
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<?>

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);