Java 在Xtext语法中指定JvmTypeReference的超类型

Java 在Xtext语法中指定JvmTypeReference的超类型,java,eclipse-plugin,xtext,Java,Eclipse Plugin,Xtext,是否可以在Xtext语法中为JvmTypeReference指定所需的类型(例如接口) 示例 Instantiation: ('new' type=JvmTypeReference (params=Params)?) ; 如果type=JvmTypeReference必须是某个指定类的实例。不,这在语法中是不可能的,但您可以通过自定义范围提供程序或方案提供程序来实现所需的行为,请参阅以下博文:您可以实现对JvmConstructor的引用 Instantiation: 'new

是否可以在Xtext语法中为JvmTypeReference指定所需的类型(例如接口)

示例

Instantiation:
    ('new' type=JvmTypeReference (params=Params)?)
;

如果
type=JvmTypeReference
必须是某个指定类的
实例。

不,这在语法中是不可能的,但您可以通过自定义范围提供程序或方案提供程序来实现所需的行为,请参阅以下博文:

您可以实现对JvmConstructor的引用

Instantiation:
    'new' type=[JvmConstructor|QualifiedName] params=Params?;

你应该在语法中使用XimportSection,然后你可以编写一个作用域提供程序,在这里你可以直接作用域到任何构造函数。

请注意博文底部的评论:实现提案提供程序只会限制内容辅助。然后还应添加验证。