0

static final と宣言されたセットがあり、さらに凍結されています。

class MyParent {
    public final static var MY_FIELDS : Set<MyParent> = {
        FIELD1, FIELD2, FIELD3, FIELD4, FIELD5
    }.freeze()
}

ここで、MyParent.MY_FIELD は複数の場所から呼び出されていくつかの魔法の処理を行うため、これを利用してコレクション自体を単純にオーバーライドしたいと考えています。

class MyChild extends MyParent {
    public override static var MY_FIELDS : Set<MyChild> = {
        FIELD1, FIELD3, FIELD5, FIELD8, FIELD9, FIELD10
    }.freeze()
}

new.NET で行われているように、キーワードも使用してみました。

class MyChild extends MyParent {
    public new static var MY_FIELDS : Set<MyChild> = {
        FIELD1, FIELD3, FIELD5, FIELD8, FIELD9, FIELD10
    }.freeze()
}

ただし、これまでのところ、回避策はありませんでした。それから、私はそれが反射によって実現可能であると読みました。

そして、自分の型のgetClass()メソッドまたはclassメンバーにアクセスできませんMyParent

これを達成できる回避策はありますか?

Guidewire プロジェクトで Gosu 8.0 を使用する。

4

2 に答える 2