java方法反射的基本操作

方法的反射:
1.获取A类中的print(int,int)方法:
 ①要获取一个方法就是获取类的信息,获取类的信息首先要获取类的类类型
  A a1=new A();  Class c= a1.getClass();
 ②获取方法 由名称和参数列表来决定,getMethod获取的是public方法,getDelcaredMethod获取自己声明的方法
  Method m =c.getMethod(methodName,paramtypes);//paramtypes可以用数组的形式  表示new Class[]{int.class,int.class},也可以直接列举类类型
  2.方法的反射操作:是用m对象来进行方法调用,和a1.print(10,20)调用的方法相同 m.invoke(a1,new Object[]{10,20})
Object o=m.invoke(对象名,参数);//方法如果没有返回值返回null,如果有返回值返回具体值,参数可用数组的方式表示,也可以直接列举,没有参数就不写

public Class A{
 public void print(){};
 public void Print(Sting a,String b){}
 public void Print(int a,int b){};
} 
public Class B{
 public static void main(String[] args){
  A a1 = new A();  Class c= a1.getclass;
  Method getMet=c.getMethod("print",String.class,String.class);//忘了加引号
  Object obj=getMet.invoke(a1,"df","df");
}
}

 

posted @ 2018-10-29 13:09  9529  阅读(124)  评论(0)    收藏  举报