我有一个Eclass Vehicle
,其枚举属性为BreakType breakType
。
BreakType
在相同的Ecore模型中定义为:
BreakType{
DRUM(0), DISC(1), BLADE(2)
}
我想将属性breakType
默认设置为null。为此,我为breakType
attribute->
DefaultLiteralValue: // it's blank
Unsettable: True
Properties of BreakType enum
Default Value : DRUM=0 // this is shown in editor UI even If i remove it from xml.
在生成gen-model和代码之后我得到的是
BreakType breakType = DRUM // attribute set with default value
默认情况下如何将其设置为null?
答案 0 :(得分:1)
我认为你不能。如果未能通过defaultValueLiteral
属性提供默认值,EMF会自动选择适合该属性类型的值。对于枚举类型,它是它定义的第一个文字值。
您始终可以自行修改生成的代码。或者您可能应该使用生成的方法来提供不可设置的功能:
void unsetAttribute();
boolean isSetAttribute();
并检查未设置状态而不是null
值。