【问题标题】:How to add custom import statements in the generated java file in xtext using jvmmodelInferrer?如何使用 jvmmodelInferrer 在 xtext 中生成的 java 文件中添加自定义导入语句?
【发布时间】:2019-03-28 10:25:55
【问题描述】:

我已经在 xtext 中为我的领域特定语言编写了一个语法,并且我正在使用 jvmmodelInferrer 来生成 java 代码。我可以生成字段和自定义方法,但是如何在生成的 java 文件中添加自定义导入语句,如“import java.util.*”,而无需用户显式编写导入语句?

【问题讨论】:

  • 应该没有必要。你能提供更多关于你在推断器中所做的事情的背景吗
  • 我必须执行 SQL 查询。所以我生成了执行 SQL 查询的代码,但我需要生成一个导入语句“import java.sql.*”。那么如何生成导入语句呢?

标签: dsl xtext xtend xbase


【解决方案1】:

您不会生成导入字符串。您只需以适当的方式使用丰富的字符串,一切都会自动发生

def dispatch void infer(Model element, IJvmDeclaredTypeAcceptor acceptor, boolean isPreIndexingPhase) {
    for (greeting : element.greetings) {
        acceptor.accept(greeting.toClass("demo." + greeting.name)) [
            members += greeting.toMethod("demo", Void.TYPE.typeRef) [
                body = '''
                «JFrame» f = null;
                «"java.util.List".typeRef("java.lang.String".typeRef)» l = null;
                return;
                '''
            ]
        ]
    }
}

【讨论】:

  • 谢谢,我从来没想过。
猜你喜欢
  • 1970-01-01
  • 2019-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多