Java反射浅谈

反射机制是一种程序自我分析的能力。用于获取一个类的类变量,构造函数,方法,修饰符。

优点:运行期类型的判断,动态类加载,动态代理使用反射。 
缺点:性能是一个问题,反射相当于一系列解释操作,通知jvm要做的事情,性能比直接的java代码要慢很多。

Java访问和修改私有成员变量

public class Student {

	private String name;
	private String age;
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getAge() {
		return age;
	}
	
	public void setAge(String age) {
		this.age = age;
	}
	
}

import java.lang.reflect.Field;

public class FieldTest {

	public static void main(String[] args) {
		try {
			Student student = new Student();
			student.setName("小强");
			student.setAge("24");
			System.out.println("name : " + student.getName());
			Class<Student> stuClazz = Student.class;
			Field nameFd = stuClazz.getDeclaredField("name");
			// Accessible属性设置为true,才能访问和修改类中的成员变量
			nameFd.setAccessible(true);
			nameFd.set(student, "小明");
			System.out.println("我是" + nameFd.get(student) + ",今年" 
					+ student.getAge() + "岁");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
}

输出结果:
name : 小强
我是小明,今年24岁


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值