日期:2014-05-20 浏览次数:21138 次
import java.lang.reflect.*;
public class MethodPointerTest {
public static void main(String[] args)throws Exception{
Method square=MethodPointerTest.class.getMethod("square", double.class);
Method sqrt=Math.class.getMethod("sqrt", double.class);
printTable(1,10,10,square);
printTable(1,10,10,sqrt);
}
public static double square(double x){
return x*x;
}
public static void printTable(double from,double to,int n,Method f){
System.out.println(f);
double dx=(to-from)/(n-1);
for (double x=from;x<=to;x+=dx){
try{
double y=(Double)f.invoke(null, x);
[color=#FF0000]//我不能明白的就是这里了 这里相当于调用square(x) 而前面的例子的格式是x.square[/color]
System.out.printf("%10.4f|%10.4f%n",x,y);
}
catch (Exception e){
e.printStackTrace();
}
}
}
}