`

EMF模型属性怎么“覆盖”??

    博客分类:
  • emf
阅读更多

在Java中,如果需要覆写一个方法,直接@Override就可以了。但是对于字段属性,java则会记住具体该字段具体所在的类

 

import org.junit.Assert;
public class ProperitesTest {
	public static class A {
		private String abc;
		public A(String abc){ this.abc = abc; }
		public String getABC(){ return abc; }
	}
	
	public static class B extends A{
		private String abc;
		public B(String abcSu, String abc){ super(abcSu); this.abc = abc; }
		public String getABC(){ return abc; }
		public String superGetABC(){ return super.getABC(); }
	}
	
	public static void main(String[] args) {
		B element = new B("A", "B");
		Assert.assertEquals("B", element.getABC());
		Assert.assertEquals("A", element.superGetABC());
		Assert.assertEquals("B", ((A)element).getABC());
		Assert.assertEquals("B", element.abc);
		Assert.assertEquals("A", ((A)element).abc);
	}
}

 

EMF在模型设计阶段只有字段的概念,即Attribute,如果在ecore中存在两个一样的属性,生成Generate Model时会报错。而EMF的校验试通过Feature来判断,如果子类该属性需要特殊处理的话,子类该如何处理呢?改ecore的校验?!



 

 

  • 大小: 46.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics