java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java通过反射取实体类字段取值

Java如何通过反射取实体类字段取值

作者:超越呦

这篇文章主要介绍了Java如何通过反射取实体类字段取值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Java通过反射取实体类字段取值

public class Test {
	public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
		GasDay gasDay = new GasDay();
		gasDay.setOutputcode("Ccccc");

		for (Field field: GasDay.class.getDeclaredFields()){
			String name = field.getName();//name就是实体类GasDay的所有字段
			
			System.out.println(String.format("r.linan.wastegas.day.%s", name));
			
			Field declaredField = GasDay.class.getDeclaredField(name);
			declaredField.setAccessible(true);

			System.out.println(String.format("name %s value %s", name, declaredField.get(gasDay)));//declaredField.get(gasDay)就是实体类GasDay中所有值
		}
	}
}

Java循环实体类 获取实体字段和字段对应的value

有的时候实体字段比较多,需要循环获取实体的字段名和字段内容,实现方法通过Field反射获取类的属性。

实现方式

需要注意的是一定要设置setAccessible为ture

public class test1 {
    public static void main(String[] args) throws IllegalAccessException {
 
        demoEntity entity=new demoEntity();
        entity.aa="1111";
        entity.bb="2222";
        entity.cc="3333";
 
        for (Field field:entity.getClass().getDeclaredFields()){
            // 一定要设置setAccessible为ture
            field.setAccessible(true);
 
            System.out.println("实体字段名:"+field.getName());
            System.out.println("实体字段值:"+field.get(entity));
        }
    }
}

输出结果:

实体类demoEntity

public class demoEntity {
    public String aa;
    public String bb;
    public String cc;
 
    public String getAa() {
        return aa;
    }
 
    public void setAa(String aa) {
        this.aa = aa;
    }
 
    public String getBb() {
        return bb;
    }
 
    public void setBb(String bb) {
        this.bb = bb;
    }
 
    public String getCc() {
        return cc;
    }
 
    public void setCc(String cc) {
        this.cc = cc;
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文