在Java中,调用类的方法有两种方式:静态方法直接调用,非静态通过类的对象调用
在反射中可以根据需要指定要调用的方法,而不必在编程时确定,不仅限于public或者privatepublic class MethodTest {
public static void main(String[] args) {
try {
System.err.println("调用Math类的静态方法sin():");
Method sinMethod = Math.class.getDeclaredMethod("sin", Double.TYPE);
Double sin = (Double)sinMethod.invoke(null, new Integer(1));
System.out.println("1的正弦值是:"+sin);
System.err.println("调用String类的非静态方法equals():");
Method equalsMethod = String.class.getDeclaredMethod("equals",Object.class);
Boolean equals = (Boolean)equalsMethod.invoke(new String("柯基"),"柯基");
System.out.println("字符串是否是柯基:"+equals);
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出结果如下: