通过反射获取属性

本文通过具体示例,深入探讨了Java反射机制的应用,展示了如何使用反射获取并修改类的私有属性,包括整型和字符串类型。通过创建一个简单的类,演示了如何通过反射获取其字段,并对这些字段进行读写操作。

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

1.定义一个类;
public class Study1 {
    private Integer a=2;
    private String b="3";

    public Integer getA() {
        return a;
    }

    public void setA(Integer a) {
        this.a = a;
    }

    public String getB() {
        return b;
    }

    public void setB(String b) {
        this.b = b;
    }

    @Override
    public String toString() {
        return "Study1{" +
                "a=" + a +
                ", b='" + b + '\'' +
                '}';
    }
}

2.在这个类中获取属性

public class StudyRe {
    public static Integer c;
    public static String d;
    public static void main(String[] args)throws Exception {
        Study1 study1 = new Study1();
        Class<? extends Study1> aClass = study1.getClass(); //下面方法必须根据对象获取反射对象。
        Field a = aClass.getDeclaredField("a"); //获取属性study1中的属性a
        Field b = aClass.getDeclaredField("b");
        a.setAccessible(true);//设置a属性的访问权限,保证private属性的访问
        b.setAccessible(true);
        a.set(study1,Integer.valueOf(23)); //给study1中的属性a赋值
        String dd=Objects.toString(a.get(study1));//把对象转换成字符串
        String s = Objects.toString(b.get(study1));
        c = Integer.parseInt(dd);//解析字符串为integer对象,并赋值
        d=s;
        System.out.println("a的值为"+ a.get(study1)); //输出study1中的属性a
        System.out.println("c的值为"+c);
        System.out.println("d的值为"+d);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值