如何在Enterprise Architect中定义Java瞬态属性?
背景:我正在使用 Sparx Enterprise Architect 8.0。当我将域类的成员标记为 transient
时,生成的代码使用 volatile
关键字而不是 transient
。根据企业架构师 Java 约定,这是正确的。
如何使用 EA 定义瞬态属性并让生成的代码使用 Java transient
关键字?
Background: I'm using Sparx Enterprise Architect 8.0. When I mark a member of a domain class as transient
, the resulting generated code uses the volatile
keyword instead of transient
. This is correct according to Enterprise Architect Java conventions.
How can I define transient attributes using EA and have the generated code to use the Java transient
keyword for them?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在属性(而不是类)上定义一个标记值,名为
transient
,值为true
。这在 9.1 中有效;不幸的是我没有 8.0 安装来尝试这个。您可以通过查看相关的生成模板来自行检查:选择“设置”-“代码生成模板”,然后在语言下拉列表中选择“Java”(左上角)。在模板列表中,找到名为“属性声明”的模板。
如果有一行以
%attTag:"transient"
开头,则上述内容应该有效。如果没有,如果您知道如何添加,您可以自己添加它(代码生成模板不是一个好的实验领域),但我不想在这里发布受 Sparx 版权保护的材料。遗憾的是,在属性上使用标记值意味着您无法在图表或项目浏览器中看到此属性。这只是生活中的一个事实,但也许值得麻烦 Sparx 以某种方式显示属性标签。
Define a tagged value on the attribute (not the class), named
transient
with valuetrue
.This works in 9.1; unfortunately I don't have an 8.0 installation to try this on. You can check it yourself by looking at the relevant generation template: select Settings - Code Generation Templates, then pick Java in the language drop-down (top left). In the Templates list, find the one called "Attribute Declaration."
If there is a line starting with
%attTag:"transient"
, the above should work. If not, you can add it yourself if you know how (code generation templates are not a good area for experimentation), but I don't want to post Sparx-copyrighted material here.Sadly, using tagged values on attributes means you can't see this property in diagrams or the project browser. That's just a fact of life, but it might be worth the bother to hassle Sparx about putting in some sort of way of showing attribute tags.