zoukankan      html  css  js  c++  java
  • 一个简单的反射拷贝一份新的实体类

    有时候我们需要复制一个实体类,而又不希望两个使用同一个内存地址,我用了很简单的反射来实现这种功能:)

    /// <summary>
            
    /// 设置实体对象的修改属性
            
    /// </summary>
            
    /// <param name="obj"></param>
            
    /// <returns></returns>

            public void CloneEntityObject(object srcObj, object desObj)
            
    {
                
    if (srcObj.Equals(desObj))
                
    {
                    
    return;
                }

                
    if (srcObj.GetType() != desObj.GetType())
                
    {
                    
    return;
                }

                System.Reflection.PropertyInfo[] info 
    = srcObj.GetType().GetProperties();
                
    foreach (System.Reflection.PropertyInfo property in info)
                
    {
                    desObj.GetType().GetProperty(property.Name).SetValue(desObj,
                        srcObj.GetType().GetProperty(property.Name).GetValue(srcObj, 
    null), null);
                }

            }


    也可以将实体类直接继承ICloneable接口,并用如上方法来实现Clone()方法.
    现在有不少架构直接使用自动代码生成器,也可以不使用反射直接每个属性值进行拷贝亦可。
  • 相关阅读:
    【Springboot】Springboot整合Ehcache
    时间戳转化正常的时间格式
    申请抖音企业认证流程
    js与原生进行交互
    vim 高亮
    shell 关于路径查询显示pwd
    shell 关于字符切割 cut
    linux ubuntu 关于vim得一些基本命令
    shell 在终端中打开另一个终端执行命令
    shell 获取时间
  • 原文地址:https://www.cnblogs.com/syveen/p/297176.html
Copyright © 2011-2022 走看看