假设我在一个类中有一个静态变量:
class Example {
public static var one:One = new One;
}
'one' 会在我的程序启动时被实例化(即使我从不使用它),还是只是在我第一次使用它时?
假设我在一个类中有一个静态变量:
class Example {
public static var one:One = new One;
}
'one' 会在我的程序启动时被实例化(即使我从不使用它),还是只是在我第一次使用它时?
我想如果你问这个问题,那是因为你只希望在使用它时创建对象。在这种情况下,您应该做的是实现对象的延迟创建。像这样的东西会起作用:
class Example {
private static var one_:One = null;
public static function get one():One {
if (!one_) one_ = new One();
return one_;
}
// If the variable is not read-only, you also need a setter:
public static function set one(v:One):void {
one_ = v;
}
}
现在您确定只有在您的代码中one
直接引用它时才会创建它。Example.one
第一次使用该类Example
它会在启动时。但是应该有这个类的“链接”。
imports
这门课所以如果这个类被编译进来,它会在启动时被实例化。
如我错了请纠正我。
实际上它很容易测试:)