Xtend:为什么不是';编译器生成的公共Java构造函数是否可以从Xtend代码中看到?

Xtend:为什么不是';编译器生成的公共Java构造函数是否可以从Xtend代码中看到?,java,eclipse,xtext,xtend,Java,Eclipse,Xtext,Xtend,我有一个Xtend子类PubnubMessage,它继承了一个字段,并有一个通过活动注释生成的构造函数。我可以在生成的Java代码中看到公共构造函数,它正确地接受字段的一个参数,但当我尝试从另一个Xtend类调用该构造函数时,如下所示: override successCallback(String channel, Object message) { send(new PubnubMessage(message)) } 我在构造函数调用中遇到以下错误: Invalid number

我有一个Xtend子类
PubnubMessage
,它继承了一个字段,并有一个通过活动注释生成的构造函数。我可以在生成的Java代码中看到公共构造函数,它正确地接受字段的一个参数,但当我尝试从另一个Xtend类调用该构造函数时,如下所示:

override successCallback(String channel, Object message)
{
    send(new PubnubMessage(message))
}
我在构造函数调用中遇到以下错误:

Invalid number of arguments. The constructor PubnubMessage() is not applicable for the arguments (Object)
只有默认的no-arg构造函数是可见的,但由于生成了显式构造函数,因此不应该有默认构造函数。如果我使用相同的调用创建Java类:

new PubnubMessage(message);
没有错误。以下是相关代码:

SocketMessage.xtend

@JsonData class SocketMessage
{
    Object message
}
@JsonData class PubnubMessage extends SocketMessage {}
SocketMessage.java(生成Xtend)

PubnubMessage.xtend

@JsonData class SocketMessage
{
    Object message
}
@JsonData class PubnubMessage extends SocketMessage {}
PubnubMessage.java(生成Xtend)


我省略了生成的hashCode()、equals()和toString()。对我来说,这段Java代码的一切都很好,正如我所说的,我可以从其他Java类成功调用它,但不能从Xtend调用。

是产生错误的类“构造函数PubnubMessage()不适用于参数(Object)'在一个依赖于活动注释项目的项目中?如果活动注释项目是
org.eclipse.xtend.lib.macro
,那么是的,它作为一个可传递的Maven依赖项包含在内。在运行xtend插件时,从eclipse获得虚假类型错误是常见的吗?我已经有好几次在Eclipse中出现类型不匹配或类似错误,但代码仍然可以正常编译。如果它继续下去,我最终应该能够在Bugzilla上提供更多的细节。不,这是非常罕见的。请提交一份文件。活动注释项目是定义AA的项目。我的问题针对另一种情况。您是否有三个项目(1个使用JsonData,第二个使用PubnubMessage,第三个使用此代码:“发送(新PubnubMessage(message))”),或者只有两个项目(1个使用JsonData,第二个使用PubnubMessage和“发送”代码)?