反射---- Field Method

本文深入解析Java反射机制,涵盖Field和Method的使用,包括获取字段、方法,对私有属性赋值,及调用类中方法的过程。适用于理解Java动态特性的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,"小程");
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值