本帖最后由 郭华章 于 2013-4-2 20:51 编辑
通过上一个帖子,我知道了静态方法不需要对象调用,所以invoke里第一个参数是null。但是下面这个静态方法的invoke第一个参数可以是一个对象,通过测试,发现invoke(null,1)与invoke(t1,1)都可以正确执行。我想问下专家们,这两种有什么区别呢还是完全一样?- package cn.itheima.day1;
- import java.lang.reflect.Method;
- public class Test {
- public static void main(String[] args) throws Exception {
- Test t1=new Test();
- Method m=Class.forName("cn.itheima.day1.Test").getMethod("numAdd",int.class);
- System.out.println(m.invoke(t1, 1));//参数为实例对象的时候
- System.out.println(m.invoke(null, 1));//参数为null的时候
- }
-
- public static int numAdd(int a){
- a++;
- return a;
- }
- }
复制代码 |