java 反射获取类方法(2)

 Class是对一个类的描述
      类的属性:Field
      类的方法:Method
      类的构造器:Constructor
 Method:对应类中的方法
     1.获取Method
     1.1获取类的方法的数组:cla.getDeclareMethods();
     1.2获取类的指定的方法:getDeclaredMethod(String, Class...) 第一个参数是方法名,第二个是Class类型的可变参数

     1.3通过Method对象执行方法,调用invoke

          public Object invoke(Object obj,Object...args)     obj:执行那个对象的方法       args:执行方法需要传入的参数

	public void testMethod() throws Exception{
		
		Class cla = Class.forName("cn.reflection.Person");
		
		//1.获取对应类的方法,不能获取private方法
		Method[] methods = cla.getMethods();
		for(Method method:methods){
			System.out.println(method.getName());
		}
		
		//2.获取所有方法,包括获取private方法,但只获取当前类的声明的所有方法
		Method[] methods2 = cla.getDeclaredMethods();
		for(Method method:methods2){
			System.out.println("~"+method.getName());
		}
		
		//3.获取指定的方法,
		//getDeclaredMethod("setName", String.class),第一个是方法名,第二个是.class类型的可变参数
		Method methods3 = cla.getDeclaredMethod("setName", String.class);
		System.out.println(methods3);
		
		Method method4 = cla.getDeclaredMethod("setName", String.class,int.class);
		System.out.println(method4);
		
		//4.执行方法
		Object obj = cla.newInstance();
		method4.invoke(obj,"class",01);
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值