java 两个对象相同属性合并merge(即同名属性null丢弃取不为空的值)通用方法代码-spring,java-ICode联盟

原创  java 两个对象相同属性合并merge(即同名属性null丢弃取不为空的值)通用方法代码

分类:spring,java    126人阅读    IT小君  2023-04-15 11:01

代码作者:chatgpt,体验地址:https://yy123.ink/chatgpt

适用场景:前端提交update对象是,对象属性赋值处理,属性合并

以下是Java 8中的通用方法代码,用于合并两个对象的相同属性。如果两个对象具有同名属性,该方法将使用第一个对象的值,如果第一个对象的值为null,则使用第二个对象的值。

public static T merge(T target, T source){
    if(source == null) {
        return target;
    }
    if(target == null) {
        return source;
    }
    Class clazz = source.getClass();
    while(clazz != null){
        for(Field field: clazz.getDeclaredFields()){
            field.setAccessible(true);
            try{
                Object sourceValue = field.get(source);
                Object targetValue = field.get(target);
                if(sourceValue != null && targetValue == null){
                    field.set(target, sourceValue);
                }
            }
            catch(IllegalAccessException e){
                // ignore
            }
        }
        clazz = clazz.getSuperclass();
    }
    return target;
}



该方法使用泛型,因此可以用于任何类型的对象。它使用Java的反射机制,以便可以在运行时获取对象的属性和值。在合并过程中,该方法将遍历源对象和目标对象的所有属性,并将源对象的非空属性值复制到目标对象中。如果目标对象的属性值为null,则使用源对象的属性值。最终,该方法将返回目标对象。

点击广告,支持我们为你提供更好的服务

3dmax弹跳鼠标跟随动画特效

html5鼠标经过星星连成一条线特效

HTML5浪漫风格婚礼婚纱婚庆网站模板

商务代理服务商公司网站模板

css照明喷泉灯光动画特效

html5 canvas文字放射发光动画特效

炫酷WebGL流体图片滑动切换效果

css精美蝴蝶动画特效

教育辅导培训机构HTML5网站模板

有趣的css图片遮罩层滤镜特效

CSS3 SVG叶子虚线响应式布局代码

打造健康生活方式宣传网站模板

canvas卡通液体马赛克图像特效

创意设计机构HTML5网站模板

4款不同岗位个人求职简历网页模板

HTML5保健品营养品引导页模板

互联网设计师个人简历网页模板

高级岗位个人求职面试网页模板

极简品牌设计工作室HTML5网站模板

时尚css导航菜单栏动画特效

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»