假设我在类中有一个静态变量:
class Example {
public static var one:One = new One;
}
我的程序启动(即使我从未使用过它),或者只是在我第一次使用它时,'one'会被实例化吗?
答案 0 :(得分:1)
我想如果你问这个问题,那是因为你只想在使用它时创建对象。在这种情况下,您应该做的是实现对象的延迟创建。这样的东西会起作用:
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
时才会创建{{1}}。
答案 1 :(得分:0)
您第一次使用班级Example
答案 2 :(得分:0)
它在启动时。但是这个班级应该有“链接”。
imports
因此,如果这个类被编译,它会在启动时实例化。
如果我错了,请纠正我。
实际上测试真的很容易:)