原创 

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

分类:spring,java    261人阅读    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,则使用源对象的属性值。最终,该方法将返回目标对象。

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

canvas炫酷鼠标移动文字粒子特效

现代时尚家具公司网站模板

响应式太阳能能源公司网站模板

有机水果蔬菜HTML5网站模板

html5 canvas彩色碎片组合球形旋转动画特效

css+js实现的颜色渐变数字时钟动画特效

HTML5现代家居装潢公司网站模板

网页设计开发公司网站模板

html5 canvas进度条圆环图表统计动画特效

中小型创意设计服务公司网站模板

html5图标下拉搜索框自动匹配代码

HTML5数字产品服务公司网站模板

HTML5 Canvas竖直流动线条背景动画特效

js+css3抽奖转盘旋转点餐代码

响应式时尚单品在线商城网站模板

小众时尚单品在线电子商务网站模板

jQuery右端悬浮带返回顶部特效

响应式咖啡饮品宣传网站模板

html5 svg夜空中星星流星动画场景特效

css鼠标跟随文字模糊特效

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