反射---- Field Method

Field 字段

getFields:获取所有public修饰的字段 包括继承过来的:

Field[] fields =clazz.getFields();
		for (Field field : fields) {
			System.out.println(field.getName());
		}

getDclarFields:获取所有访问修饰符修饰的字段 不包括从父类继承的:

Field[] fields1 = clazz.getDeclaredFields();
		for (Field field : fields1) {
			System.out.println(field.getName());
		}

利用反射对成员属性赋值 set
对于私有的属性
需要field.setAccessible(true);给出访问权限

Field field = clazz.getDeclaredField("sName");
		field.setAccessible(true);
		field.set(s, "小程");
		System.out.println(s);

Method 方法

getMethodods 返回这个类所有的public方法 包括继承的

Method[] meth= clazz.getMethods();
		for (Method method : meth) {
			System.out.println(method.getName());
		}

getDeclarMethods 返回这个类所有访问修饰符修饰的方法 不包括继承的

Method[] meth1 = clazz.getDeclaredMethods();
		for (Method method : meth1) {
			System.out.println(method.getName());
		}

利用反射调取类中的方法

Method meth2= clazz.getDeclaredMethod("mehtod7",String.class);

调用的方法若是private私有的 则需要给出权限

meth2.setAccessible(true);

若需要接收方法返回值 为Object类型 可根据需要强转为其他类型

String r =(String) meth2.invoke(s,"小程");
		
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值