• 将src非空的属性注入到des中


    package lizikj.bigwheel.common.vo.merchandise.util;

    import java.lang.reflect.Field;

    import lizikj.bigwheel.common.vo.merchandise.Merchandise;

    public class ObjUtils {

    /**
    * 将src非空的属性注入到des中
    * @param des
    * @param src
    */
    public static void copyPropertysWithoutNull(Object des, Object src){
    Class<?> clazz = des.getClass();
    Field[] srcfields=src.getClass().getDeclaredFields();
    for(Field field:srcfields){
    if(field.getName().equals("serialVersionUID"))
    continue;
    Field f;
    try {
    f = clazz.getDeclaredField(field.getName());
    f.setAccessible(true);
    field.setAccessible(true);
    Object obj = field.get(src);
    if(obj!=null)
    f.set(des,obj);
    } catch (SecurityException e) {
    e.printStackTrace();
    } catch (NoSuchFieldException e) {
    e.printStackTrace();
    } catch (IllegalArgumentException e) {
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    }
    }
    }

    public static void main(String[] args) {

    Merchandise origin=new Merchandise();
    origin.setBarCode("2");
    origin.setBrowseNum(1);
    origin.setCategoryId(1);
    origin.setDescribe(null);
    origin.setBrand(null);
    Merchandise destination=new Merchandise();
    destination.setBarCode(null);
    destination.setCategoryId(2);
    destination.setDescribe("5555");
    destination.setBrand("ttt");
    ObjUtils.copyPropertysWithoutNull(destination, origin);
    System.out.println(destination.getBarCode());
    System.out.println(destination.getDescribe());
    System.out.println(destination.getBrand());
    System.out.println(destination.getCategoryId());

    }
    }

     忘记在那里找的了

    import Java.lang.reflect.Field;

    public class BeanUtils {

        public static void copyPropertysWithoutNull(Object des, Object src) throws Exception{
            Class<?> clazz = des.getClass();
            Field[] srcfields=src.getClass().getDeclaredFields();
            for(Field field:srcfields){
                if(field.getName().equals("serialVersionUID"))
                    continue;
                Field f =clazz.getDeclaredField(field.getName());
               field.setAccessible(true);
                Object obj = field.get(src);
                if(obj!=null)
                    f.set(des,field.get(src));
            }
        }
    }

    来自:http://blog.csdn.net/wutongyu344/article/details/7353951

  • 相关阅读:
    理解WebKit和Chromium: Chromium的多线程机制
    java.lang.IllegalStateException: Web app root system property already set to different value
    MySQL 深入剖析 char varchar 类型,有了VARCHAR,为什么还要有CHAR?
    Ubuntu包管理命令大全,包括apt命令和dpkg命令
    GHashTable不能以字符串作为key,可以使用data list来代替
    LFS全过程历险
    忘记了root密码怎么办?
    ArchLinux安装几天的经验总结、bug修正和软件配置
    mplayer加载srt字幕乱码,或是下划线等问题解决
    从串口登录Linux主机
  • 原文地址:https://www.cnblogs.com/lanliying/p/5798482.html
Copyright © 2020-2023  润新知