EMF中复制对象属性

1、简单的场景就是复制一个EObject,可以用工具类中的方法EcoreUtil.copy()。

2、场景:自己的TO类继承了EMF创建出的类,需要复制父类中的所有属性。

    /**
     * 将父类所有的属性COPY到子类中。 类定义中child一定要extends father;
     * @param father
     * @param child
     */
    public static void fatherToChild(EObject father, EObject child) {
        for (Field field : father.getClass().getDeclaredFields()) {
            EStructuralFeature feature = father.eClass().getEStructuralFeature(field.getName());
            if(feature!=null) {
                Object value = father.eGet(feature);
                child.eSet(feature, value);
            }
        }
    }    
时间: 2024-11-04 14:25:27

EMF中复制对象属性的相关文章

复制对象属性:只复制需要的属性值,目标对象中原来的值不变(反射)

使用反射(性能很差,自测是cglib-beanmap性能的50分之1左右): /** * 复制对象属性:只复制需要的属性值,目标对象中原来的值不变 * 只适用于2个相同对象 * @param from 要复制的对象 * @param to 目标对象 * @throws Exception */ @SuppressWarnings("unchecked") public static void copyPropertiesExclude(Object from, Object to) t

java 复制对象和复制对象属性

/** * 复制对象属性(对象类型必须相同) * * @param orig 资源对象 * @param dest 目标对象 * @param clazz 源对象类 * @param ignoreNull 是否忽略空(true:忽略,false:不忽略) * @return */ public static <T> T copyProperties(T orig, T dest, Class<?> clazz, boolean ignoreNull) { if (orig == n

IOS中复制对象的用法及深拷贝和浅拷贝详解

亲爱的网友,我这里有套课程想和大家分享,如果对这个课程有兴趣的,可以加我的QQ2059055336和我联系. 课程内容简介 我们软件是基于移动设备的.所以我们必然的选择了安卓作为我们的开发工具.课程中,我们将简要的介绍Android的基本概念,然后进行我们的实战开发.在开发中,大家讲学习到基本的组件,适配UI,数据的存储,多线程下载,开机广播,闹钟提醒,短信发送等实际项目开发中碰到的有用的知识点.通过课程学习,让大家能够掌握Android软件开发的流程,注意点,及优化.帮助大家迅速的掌握Andr

jquery中event对象属性与方法小结

JQuery事件中的Event属性是经常性的被忽略的.大多数时间你的确不怎么用它,但有些时候它还是它还是有作用的.如获知触发时用户的环境(是否按了shift etc).每个浏览器对event都有不同的地方,Jquery对Event做了标准化所以可以放心用. * .target  这个反应触发事件的DOM对象,可以在事件冒泡的时候判断是否是事件源头(compare event.target to this) * .pageX:  鼠标的left属性,相对于page * .pageY:  鼠标的to

一个关于el中获取对象属性的错误

具体过程描述为: 在JSP页面中通过<%%>定义一个非public类.并定义两个属性相应的get和set方法.在该代码段中实例化该对象,并将该对象放入Request域中. 然后在页面中使用el表达式通过 对象名.属性名 的方式获取 这个对象的私有属性.但是在执行时便出现了上面的异常. 原因: 在JSP页面中定义的类是非公有的.而el表达式获取对象私有属性的机制是通过反射的方式获取这个类的对象,然后将该属性的第一个字符大写并在前面加上get拼接成获取的方法.然后通过调用这个方法了得到这个私有属性

R中list对象属性以及具有list性质的对象

R语言list的特点:It has length, [[ and [ methods, and is recursive because list can contain other list!上图显示了操作符 [[和[的区别!---[返回结果依旧是一个list但是[[已经不是一个list了 >>具有list属性的类还有 1.call类对象:The first element of the call is the function that gets called. It’s usually

JS中复制对象方法

1. var dst = angular.copy(src,{});第二个参数为{}时,返回新对象: var dst = angular.copy(src,dst);生copy,只修改目标属性,不修改指针 2.for (attrbt in editAL) { newAL[attrbt] = editAL[attrbt]};

根据List集合中的对象属性排序

首先创建一个Student对象,里面有三个属性,分别是int类型,String类型,Date类型 package com.sinoway.cisp.test; import java.text.SimpleDateFormat; import java.util.Date; public class Student { private int age; private String name; private Date birthday; public int getAge() { return

JS中遍历对象属性的四种方法

Object.keys().Object.values().Object.entries().for...in.Map (1)Object.keys(): let ex1 = {c1: 'white',c2: 'black'} let ex2 = {c3: 'green',c4: 'yellow'} Object.setPrototypeOf(ex1 ,ex2 ):Obejct.keys(ex2 ) === ['c3','c4']           ex2['c3'] === 'green'