我有一个声明为静态最终的集合,并且还被冻结了。
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。