Field

(1)获取Field

Class studentClass=Class.forName("test.Student");
		//只能获取公开的属性,用getDeclaredFieds()可以获得其他的
		Field[] f=studentClass.getFields();
		for (Field fs:f) {
			//获取简单的属性名,类型,修饰符的数字代号
			System.out.println(fs.getName()+" "+fs.getType()+" "+fs.getModifiers());
		}

(2)反编译Field

可以通过获得类的修饰符、类名,属性的修饰符、名称等,反写出这个类。

(3)通过反射机制访问对象属性

通过反射机制获取到一个对象的属性或者进行修改。

Class accountClass=Class.forName("test.Account");
		Object o=accountClass.newInstance();
		Field f = null;
		try {
			f=accountClass.getDeclaredField("bankMoney");
		} catch (NoSuchFieldException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SecurityException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
//要设定对象同样需要三要素:对象、属性、值
		f.set(o,2222);f.get(o);

上述不能访问私有的属性,如果要访问需要f.setAccessible(true)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值