5

我正在尝试Xtend。是否可以制作构造函数?看起来很简单,但是当我尝试这样的事情时出现错误:

class Scope extends Rect {

    public Scope(){
        super()
    }

}
4

4 回答 4

13

构造函数是通过重载 new() 方法来定义的:

class MyClass extends AnotherClass {
  new(String s) {
    super(s)
  }

  new() {
    this("default")
  }
}

这里

于 2012-02-07T12:51:17.533 回答
2

Xtend 的下一个版本计划于 12 月中旬发布。它将支持声明构造函数。

http://www.eclipse.org/Xtext/xtend/#whatsnext

于 2011-11-14T07:44:53.307 回答
1

Xtend 尚不支持构造函数。建议 def Scope() 比工作构造函数更像是一个错误。你可能想关注这张

于 2011-11-08T19:29:07.550 回答
1

Xtend 2.0 中没有构造函数支持。我认为这是一个表演终结者。

“class Foo { def Foo() { / stuff / } } 在 Foo 的实例上声明一个 Foo 方法,该方法具有推断的返回类型,而不是构造函数,正如浏览生成的 Java 代码所显示的那样。

这意味着无法扩展缺少默认构造函数的 Java 类。XTend 不抱怨;它会愉快地生成无法编译的 Java。

XTend 也不自然地支持不可变(最终)实例变量。

于 2011-11-08T20:42:54.510 回答