将类似DSL的construstor调用与匿名类声明相结合

时间:2015-12-22 09:00:08

标签: ceylon

有可能吗?
我试过这样的事情:

object foo extends Foo {
    constructorNamedArg = "qqq";
} {
    abstractMethod() => bar.baz();
}

2 个答案:

答案 0 :(得分:4)

我不会为此使用继承。相反,我会将Foo定义为具体类:

class Foo(String constructorNamedArg, Baz abstractMethod()) {}

现在在电话会议网站上我会写:

Foo {
    constructorNamedArg = "qqq";
    abstractMethod() => bar.baz();
}

甚至:

Foo {
    constructorNamedArg = "qqq";
    function abstractMethod() { 
        return bar.baz(); 
    }
}

这是Ceylon中常见的重构,从使用形式方法的抽象类到由函数参数化的具体类。

HTH

答案 1 :(得分:2)

根据the specification,不可能,只能有位置参数列表。