【问题标题】:how to use type annotations in xtext?如何在 xtext 中使用类型注释?
【发布时间】:2018-01-05 11:58:22
【问题描述】:

如何使用 JvmModelInferrer 添加如下字段?

public final @IdInstance long id;

我已经拥有的是这个:

members += domainId.toField('id', Long.TYPE.typeRef()) [
    visibility = JvmVisibility.PUBLIC
    final = true
]

产生这个java代码:

public final long id;

但我不知道如何将IdInstance 注释添加到类型中。

注意:在字段中添加注释是可行的,但不是我想要的:

members += domainId.toField('id', Long.TYPE.typeRef()) [
    visibility = JvmVisibility.PUBLIC
    final = true
    annotations += 'com.tmtron.dscontrol2.qual.IdInstance'.annotationRef()
]

产生:

@IdInstance
public final long id;

【问题讨论】:

标签: xtext type-annotation


【解决方案1】:

xbase 还不支持类型注解:见xtext#218

但是有一种简单的方法可以生成我们想要的内容:

JvmTypeReferenceBuilder.typeRef('@IdInstance long')

这将创建一个JvmUnknownTypeReference,它只是将提供的字符串逐字写入输出(因此请确保正确导入或使用完全限定的注释)。

【讨论】:

    猜你喜欢
    • 2018-08-01
    • 2017-02-03
    • 1970-01-01
    • 2023-03-11
    • 2019-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    相关资源
    最近更新 更多