仓酷云

标题: 来看基于反射机制的EMF模子对照 [打印本页]

作者: 深爱那片海    时间: 2015-1-18 11:05
标题: 来看基于反射机制的EMF模子对照
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.
简介:本文基于EMF(EclipseModelingFramework)模子反射机制,完成了一种EMF模子对象对照的办法,并展现怎样利用该算法得出对象的婚配水平。起首设定对象的待对照字段列表。对个中的每一个字段,猎取并对照对象的字段值。在对照的过程当中,该算法将组合数据范例(如自界说类、列表)的对照分化为其子数据范例的对照。模子对照的了局是一个差别项列表,作为后续使用的基础,能够被用于版本把持、模子导进/导出等场景中。
EMF和Ecore简介
EclipseModelingFramework(EMF)是一个开放源代码的模子驱动使用程序开辟框架。它能够基于XMLSchema、UML或带有模子特性正文的Java接口,创立Java代码,完成图形化的数据编纂、利用、读取和序列化。EMF是IBMWebSphereStudio和Eclipse项目中良多工具的基本。
Ecore元模子是EMF框架的中心,它形貌EMF模子而且供应模子的运转时撑持,包含:模子修正关照,以默许的XMI序列化供应EMF的耐久化撑持,以及通用于操纵EMF对象的高效反射API。本文恰是使用EMF的反射API读取EMF对象的值,在此基本上完成EMF对象的对照。
.Ecore范例树
来看基于反射机制的EMF模子对照
登录/注册后可看大图

为Ecore的范例树。图中灰色添补背景暗示在EMF框架中,该接口的完成类为笼统类,黄色添补背景的接口有非笼统的完成类。对图中与本文相干的范例先容以下:
EAttribute:用来形貌一个属性,它具有一个名字和范例。EAttribute形貌复杂数据,它由一个EDataType来指定。
EClass:是EMF对象的元范例,用来形貌建模模子。它以属性(EAttribute)和援用(EReference)形貌建模类的字段(Field)。相似Java的Object.getClass()失掉的Class,挪用EObject对象的eClass()办法能够失掉EClass。
EDataType:用来形貌一个属性的范例,这个属性必需是复杂数据范例,包含基础(primitivetype)数据范例如:int,一个Java范例如String,也能够是一个数组。
EFactory:为一个笼统工场,它包括创立建模对象的办法。
EObject:由可见,EObject为一切EMF建模对象的基范例(或称超范例),在EMF框架内相似于java.lang.Object。为了区分于用户建模中的方法名,EObject接口中所界说的办法名都以"e"开首。如eClass()办法前往一个EMF对象的元模子(EClass)。
EPackage:在Ecore中,EPackage包括关于模子类(EClass)和数据范例(EDataType)的信息,怎样失掉EPackage的实例和失掉模子类的信息在前面将具体先容。
EReference:用来形貌类之间的联系关系干系,EReference着名称;一个形貌包含干系的布尔标记位(包括与反对定这两个范例之间的干系是聚合(Aggregation)大概组合(Compostition));一个reference(方针)类型,用来指定干系的范例,因为联系关系干系是两个范例之间的干系,以是EReference老是指向组合数据范例。
EStructureFeature:是EReference和EAttribute的配合超类。在了解上能够将其作为字段(Field)。由于EStructuralFeature的完成是笼统类,所以失掉的EStructuralFeature对象必定是EAttribute大概EReference范例的实例。
<p>
windows系统样,他们做了什么事或者留了一些后门程序,谁都不知道,二,java开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的
作者: 飘飘悠悠    时间: 2015-1-20 14:24
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 第二个灵魂    时间: 2015-1-21 15:15
是一种突破用户端机器环境和CPU
作者: 爱飞    时间: 2015-1-24 11:30
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者: 仓酷云    时间: 2015-1-26 10:22
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 透明    时间: 2015-2-4 13:48
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 老尸    时间: 2015-2-10 00:58
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 活着的死人    时间: 2015-2-28 10:20
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 精灵巫婆    时间: 2015-3-9 22:16
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
作者: admin    时间: 2015-3-17 02:10
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 冷月葬花魂    时间: 2015-3-23 14:35
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2