1

ダーツコード:

main() {
    var child1 = new Child1();
    var t = child1.childType();
}

class Parent {
    ??? childType() {
        return this.runtimeType;
    }
}

class Child1 extends Parent {
}

class Child2 extends Parent {
}

???in classを見ることができます。Parent子の型を参照したいのですが、宣言する方法がわかりません。

scala では、次のようになります。

def childType(): this.type = {
    ...
}

しかし、ダーツでそれを行う方法がわかりません。出来ますか?不可能な場合、ここで使用するのに最適な型は何ですか?

4

1 に答える 1

3

戻り値の型をchildType正しいサブタイプとして静的に宣言する必要がある場合は、ジェネリックを使用できます。

class Parent<C extends Parent> {
  C get childType => runtimeType;
}

class Child1 extends Parent<Child1> {}

class Child2 extends Parent<Child2> {}

私は本当にあなたがそれを必要としていることを確認したいと思います. childTypeとして入力し続けることができますParent

于 2013-07-27T05:33:56.317 に答える