背景:我正在使用 Sparx Enterprise Architect 8.0。当我将域类的成员标记为transient
时,生成的代码使用volatile
关键字而不是transient
. 根据Enterprise Architect Java 约定,这是正确的。
如何使用 EA 定义瞬态属性并让生成的代码为它们使用 Javatransient
关键字?
背景:我正在使用 Sparx Enterprise Architect 8.0。当我将域类的成员标记为transient
时,生成的代码使用volatile
关键字而不是transient
. 根据Enterprise Architect Java 约定,这是正确的。
如何使用 EA 定义瞬态属性并让生成的代码为它们使用 Javatransient
关键字?
在属性(不是类)上定义一个标记值,以transient
value命名true
。
这适用于 9.1;不幸的是,我没有 8.0 安装来尝试这个。您可以通过查看相关的生成模板自行检查:选择 Settings - Code Generation Templates,然后在语言下拉列表(左上角)中选择 Java。在模板列表中,找到名为“属性声明”的模板。
如果有一行以 开头%attTag:"transient"
,则上述内容应该有效。如果没有,如果你知道如何添加它,你可以自己添加(代码生成模板不是一个很好的实验领域),但我不想在这里发布 Sparx 版权的材料。
遗憾的是,在属性上使用标记值意味着您无法在图表或项目浏览器中看到此属性。这只是生活中的事实,但可能值得麻烦 Sparx 以某种方式显示属性标签。