Jvm Xtext:无法解析为类型

Jvm Xtext:无法解析为类型,jvm,dsl,xtext,xtend,Jvm,Dsl,Xtext,Xtend,我的代码中有奇怪的错误: import dsltest.models.Plant import dsltest.controllers.PlantController.create package dsltest.assemblers { assembler PlantAssembler : Plant { state CREATES create => PENDING end state PENDING end } }

我的代码中有奇怪的错误:

import dsltest.models.Plant    
import dsltest.controllers.PlantController.create

package dsltest.assemblers {

assembler PlantAssembler : Plant {

    state CREATES
        create => PENDING
    end

    state PENDING

    end
}
}
错误: “dsltest.controllers.PlantController.create无法解析为类型。”在导入时出现(第二行)。第一行导入时没有错误

“创建”是一个由控制器封装的方法-“PlantController”


我试图清理这个项目,但没用。请有人帮我解决这个问题。

您应该使用静态导入声明来导入静态成员:

import static dsltest.controllers.PlantController.create

否则,
dsltest.controllers.PlantController.create
将被视为对
JvmDeclaredType

的引用。您应该使用静态导入声明来导入静态成员:

import static dsltest.controllers.PlantController.create

否则,
dsltest.controllers.PlantController.create
将被视为对
JvmDeclaredType

的引用,该方法是静态的吗?您仍然会得到相同的错误吗?该方法必须是静态的。无法导入实例方法,因为首先需要PlantController类的实例。XImportSection的默认语义类似于java:。如您所见,它不会隐式创建导入类型的实例并将其放在声明类型的范围内。您是否为PlantaAssembler推断了一个类,并为每个州推断了一个方法?如果是这样,您可以将一个带有PlantController类型扩展修饰符的字段添加到此类。该方法是静态的吗?您仍然会得到相同的错误吗?该方法必须是静态的。无法导入实例方法,因为首先需要PlantController类的实例。XImportSection的默认语义类似于java:。如您所见,它不会隐式创建导入类型的实例并将其放在声明类型的范围内。您是否为PlantaAssembler推断了一个类,并为每个州推断了一个方法?如果是这样,您可以将一个带有PlantController类型扩展修饰符的字段添加到此类中。