Xtend 中的类构造函数
我正在尝试 Xtend。可以制作构造函数吗?这看起来很简单,但是当我尝试这样的事情时,我收到了错误:
class Scope extends Rect {
public Scope(){
super()
}
}
I'm trying out Xtend. Is it possible to make constructors? It seems so simple, but I'm getting an error when I try something like this:
class Scope extends Rect {
public Scope(){
super()
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
构造函数是通过重载 new() 方法来定义的:
请查看此处
Constructors are defined by overloading a new() method:
look here
Xtend 的下一个版本计划于 12 月中旬发布。它将支持声明构造函数。
请参阅http://www.eclipse.org/Xtext/xtend/#whatsnext
The next release of Xtend is planned for mid December. It'll have support for declaring constructors.
See http://www.eclipse.org/Xtext/xtend/#whatsnext
Xtend 尚不支持构造函数。 def Scope() 这个建议与其说是一个有效的构造函数,不如说是一个错误。您可能需要关注此票据。
Constructors are not yet supported in Xtend. The suggestion def Scope() is more a bug than a working constructor. You may want to follow this ticket.
Xtend 2.0 中没有构造函数支持。我认为这是一个表演障碍。
“class Foo { def Foo() { /stuff/ } } 在 Foo 实例上使用推断的返回类型声明一个方法 Foo,而不是构造函数,如浏览生成的 Java 代码所示。
这意味着没有办法扩展缺少默认构造函数的 Java 类,XTend 不会抱怨;它
自然也不支持不可变(最终)实例变量。
There is no constructor support in Xtend 2.0. I think it is a show stopper.
"class Foo { def Foo() { /stuff/ } } declares a method Foo on instances of Foo with the inferred return type, not a constructor, as browsing the generated Java code will show.
This implies that there is no way to extend Java classes that lack default constructors. XTend does not complain; it happily generates Java that does not compile.
Nor does XTend support immutable (final) instance variables, naturally enough.