使用什么值来初始化类定义的static和const成员是安全的?

时间:2011-05-18 21:00:44

标签: actionscript-3

换句话说,这个问题可以解读,“编译时变量声明和定义的顺序是什么?”

我暂时不记得具体的例子,但是我知道我在我的类定义中初始化const和静态值时遇到了麻烦,因为这些值的声明是无序的。

我知道我可以在声明静态const成员时实例化对象,如下所示:

public class ConstsWithNewObjects {
    public static const DEFINED_NOW_2:Object = {something:"Defined!"};
    public static const DEFINED_NOW_3:Object = new CustomObject("Defined!");
}

但是,如果我从另一个静态值或const值访问其中一个成员,我会想象出现竞争条件,如下:

public class ConstsWithOtherConsts {
    public static const DEFINED_NOW_1:Object = DEFINED_NOW_3; // Does this exist, yet?
}

1 个答案:

答案 0 :(得分:1)

ActoinScript Hero Jack Dunstan在他的博客上详细介绍了这个确切的主题:Class Bootup Part 2

无论杰克的发现如何;为了读者的理智,我会建议你;保持静态初始化代码尽可能干净简单 - 不要忘记静态字段可以调用静态方法;你也可以使用static Class initialiser method