クラスに静的変数があるとします。
class Example {
public static var one:One = new One;
}
「1」は、プログラムの起動時にインスタンス化されますか (使用しない場合でも)、または初めて使用するときにインスタンス化されますか?
クラスに静的変数があるとします。
class Example {
public static var one:One = new One;
}
「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
初めてクラスを使用する場合Example
起動時でしょう。ただし、このクラスへの「リンク」が必要です。
imports
このクラスで持っていますしたがって、このクラスがコンパイルされている場合、起動時にインスタンス化されます。
私が間違っている場合は修正してください。
実際、テストするのは本当に簡単です:)