java – 如何动态地从pojo中获取字段
发布时间:2020-12-15 04:46:06 所属栏目:Java 来源:网络整理
导读:下面是我的POJO类,它有50个带有setter和getter的字段. Class Employee{int m1;int m2;int m3;..int m50;//setters and getters 从我的另一个班级,我需要得到所有这50个领域来得到他们的总和 Employee e1 =new Emploee();int total = e1.getM1()+e2.getM2()+.
下面是我的POJO类,它有50个带有setter和getter的字段.
Class Employee{ int m1; int m2; int m3; . . int m50; //setters and getters 从我的另一个班级,我需要得到所有这50个领域来得到他们的总和 Employee e1 =new Emploee(); int total = e1.getM1()+e2.getM2()+........e2.getM50(); 而不是手动执行50个记录,有任何方法可以动态地(通过任何循环). 谢谢 解决方法
你可以使用java反射.为简单起见,我假设您的Employee calss只包含int字段.但是您可以使用此处使用的类似规则来获取float,double或long值.这是一个完整的代码 –
import java.lang.reflect.Field; import java.util.List; class Employee{ private int m=10; private int n=20; private int o=25; private int p=30; private int q=40; } public class EmployeeTest{ public static void main(String[] args) throws NoSuchFieldException,IllegalAccessException{ int sum = 0; Employee employee = new Employee(); Field[] allFields = employee.getClass().getDeclaredFields(); for (Field each : allFields) { if(each.getType().toString().equals("int")){ Field field = employee.getClass().getDeclaredField(each.getName()); field.setAccessible(true); Object value = field.get(employee); Integer i = (Integer) value; sum = sum+i; } } System.out.println("Sum :" +sum); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |