zoukankan      html  css  js  c++  java
  • bean反射比较两个bean属性值的修改明细

    1.期望:将【username】从'111'改成'222';将【address】从'这是一个测试数据'改成'这是一个真实数据';

    2.导入jar

         <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
          <version>1.5.21.RELEASE</version>
        </dependency>
        
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.8.1</version>
        </dependency>

    3.model类

    public class UserModel {
        private String username;
        private String sex;
        private String age;
        private String address;
        
        
        @Override
        public String toString() {
            return "UserModel [username=" + username + ", sex=" + sex + ", age="
                    + age + ", address=" + address + "]";
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
        public String getAge() {
            return age;
        }
        public void setAge(String age) {
            this.age = age;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
            this.address = address;
        }
        
    }

    4.对比类及测试方法

    public class MyBeanCompareTest {
    
         public static void main(String[] args) throws Exception {
             UserModel oldData = new UserModel();
                oldData.setUsername("111");
                oldData.setAddress("这是一个测试数据");
    
    
                UserModel newData = new UserModel();
                newData.setUsername("222");
                newData.setAddress("这是一个真实数据");
    
    
                String desc = compare(oldData, newData);
                System.out.println(desc);
        }
    
        private static String compare(UserModel oldData, UserModel newData) throws Exception {
            StringBuffer content = new StringBuffer();
            
            Class clazz = newData.getClass();
            Field[] fields = clazz.getDeclaredFields();
            for (Field field : fields) {
                // with modifiers "private"
                ReflectionUtils.makeAccessible(field);
                Object newValue = field.get(newData);
                System.out.print("fieldName="+field.getName()+",fieldValue="+String.valueOf(newValue));
                    Object oldValue = field.get(oldData);
                    System.out.println("	fieldName="+field.getName()+",fieldValue="+String.valueOf(oldValue));
                    
                    if(newValue != null && newValue != oldValue){
                        
                        content.append("将【");
                       content.append(field.getName());
                       content.append("】");
                       content.append("从'");
                       content.append(String.valueOf(newValue));
                       content.append("'改成'");
                       content.append(String.valueOf(oldValue));
                       content.append("';");
                   
                    }
            }
            
             
            return content.toString();
        }
         
    }
  • 相关阅读:
    mysql 安装教程
    Centos 7和 Centos 6开放查看端口 防火墙关闭打开
    yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。
    CentOS更改yum源与更新系统
    Linux中文显示乱码?如何设置centos显示中文
    centos 7 升级/安装 git 2.7.3
    Maven实现项目构建直接部署Web项目到Tomcat
    ODAC (odp.net) 从开发到部署
    OGNL的使用
    DotNet Core 中使用 gRPC
  • 原文地址:https://www.cnblogs.com/oktokeep/p/13252324.html
Copyright © 2011-2022 走看看