Linux作业管理
2010-10-03 22:25
501 查看
写了个公共方法,用新对象中非NULL属性值去取代老对象中的同名属性值,备忘。
import java.lang.reflect.Field; import java.lang.reflect.Method; public class Test { /** * @param args */ public static void main(String[] args) { User user1 = new User(); User user2 = new User(); user2.setAge(222); user2.setNum(333); user2.setUserName("222Name"); User user = (User) replaceValue(user1, user2); System.out.println(user.toString()); } public static String generateSetName(String fieldName) { if (null == fieldName || "".equals(fieldName)) { return null; } return "set" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1); } private static Object replaceValue(Object newObject, Object oldObject) { try { Field[] incrementFields = newObject.getClass().getDeclaredFields(); Field[] oldFields = oldObject.getClass().getDeclaredFields(); for (int i = 0; i < incrementFields.length; i++) { Field incrementField = incrementFields[i]; incrementField.setAccessible(true); for (int j = 0; j < oldFields.length; j++) { Field field = incrementFields[j]; field.setAccessible(true); if (incrementField.getName().equals(field.getName())) { if(incrementField.get(newObject) != null) { Method fieldSetMet = newObject.getClass() .getMethod(generateSetName(incrementField.getName()), incrementField.getType()); fieldSetMet.invoke(oldObject, incrementField.get(newObject)); } } } } } catch (Exception ex) { ex.printStackTrace(); } return oldObject; } }
相关文章推荐
- Linux系统--Linux进程与作业管理(1)
- Linux前后台作业切换及脱机管理
- Linux 前台后台作业管理
- 蓝点中文Linux2.0 实验十三 进程与作业管理
- 详解Linux进程及作业管理
- Linux系统管理第六周作业【Linux微职位】
- linux作业管理相关信号
- Linux进程管理与作业控制
- linux学习入门1——bash命令基本操作(linuxcast.net)(bash部分快捷键、uname、history、通配符、切换用户、作业管理(前台、后台运行,暂停等操作))
- Linux服务及安全管理第十周作业【Linux微职位】
- linux进程及作业管理的四大长老-htop/ dstat /top/ ps
- Linux下作业管理与进程管理
- Linux下的作业管理
- Linux下的进程和作业概念,以及作业管理
- Linux进程及作业管理
- linux常用进程及作业管理常用命令
- 【转】Linux 前后台作业切换及脱机管理
- Linux进程及作业管理
- 常用Linux进程及作业管理命令
- Linux的进程管理和作业控制