Java:利用反射机制修改对象的私有属性

能够分析类的能力的程序称为“反射”。反射机制的功能及其强大,它可以用来:

1、在运行时分析类的能力

2、在运行时查看类的对象

下面的代码利用发射机制修改对象的私有属性:

public class Employee implements Cloneable{

    private String name = "";
    private double salary = 0.0;

    public Employee(String name,double salary){
        this(name);
        this.salary = salary;
    }

    public String getName() {
        return name;
    }
    public double getSalary() {
        return salary;
    }
}

public class Main {
    public static void main(String[] args) throws Exception{
        Employee employee = new Employee("张三",12000);
        Class cl = employee.getClass();//获取Class对象
        Field field = cl.getDeclaredField("salary");//获取salary属性
        field.setAccessible(true);//覆盖私有属性的访问控制权限
        System.out.println("修改前的Salary:"+employee.getSalary());
        field.set(employee,13000);//利用Field的set方法修改私有属性值
        System.out.println("修改后的Salary:"+employee.getSalary());
    }
}

实际结果:

如有错误,敬请指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值