首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xtext注入绑定错误

Xtext注入绑定错误
EN

Stack Overflow用户
提问于 2016-03-03 21:55:27
回答 1查看 131关注 0票数 0

我遵循Lorenzo的“用Xtext和X趋向实现特定领域的语言”一书,在第6章的某个时候,我被要求使用Xtext提供的API,其中提到了使用Google的依赖注入。

服务代码已实现

代码语言:javascript
复制
class EntitiesOutputConfigurationProvider extends OutputConfigurationProvider {
       public val ENTITIES_GEN = "./entities-gen"
       override getOutputConfigurations() {
              super.getOutputConfigurations() => [
              head.outputDirectory = ENTITIES_GEN
              ]
       }
}

绑定的代码是:

代码语言:javascript
复制
public class EntitiesRuntimeModule extends AbstractEntitiesRuntimeModule {
       public Class<? extends IOutputConfigurationProvider>
       bindIOutputConfigurationProvider() {
              return EntitiesOutputConfigurationProvider. class;
       }
}

然后我得到了下面的错误

AbstractEntitiesRuntimeModule

错误:

不匹配的输入“{”期望“=>”

根据本书和Xtext文档,代码是正确的。有人知道吗?

P.S.:我的Xtext版本是2.9

EN

回答 1

Stack Overflow用户

发布于 2016-05-07 19:09:37

您在X差普类中使用Java语法。为了在X趋向中定义一个新方法,您必须始终使用def关键字。

产生特定错误消息的原因是X趋向支持函数类型的缩写。例如,()=>String是不接受参数并返回字符串的函数的类型,是Function0<? extends String>的缩写。

在X趋向中,public Class<? extends IOutputConfigurationProvider> bindIOutputConfigurationProvider是一个完整的字段定义(而不是方法定义),X趋向解析器认为您正在尝试启动具有函数类型的第二个字段定义,但没有完全指定该类型。在函数类型中,()之后的下一件事情总是必须是=>,所以解析器会抱怨它找到了一个{

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35783813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档