奇怪的想法。public class AAAAA { public AAAAA() {} public AAAAA aaa; public void InitAAAA { aaa=new AAAAA(); } }在外部代码中,显示的调用InitAAAA方法,这样做就延迟了aaa的初始化;让它创建时间从AAAA创建的时候,延迟到外部调用InitAAAA方法时候。
单件模式这是flex的。 public function GetXML() { } public static function get instance():GetXML { if(_instance == null) _instance = new GetXML(); return _instance }
{
public AAAAA()
{}
public AAAAA aaa;
public void InitAAAA
{
aaa=new AAAAA();
}
}在外部代码中,显示的调用InitAAAA方法,这样做就延迟了aaa的初始化;让它创建时间从AAAA创建的时候,延迟到外部调用InitAAAA方法时候。
调用构造前必须对成员aaa完成初始化,但aaa不是静态的情况下,造成aaa的初始化依赖于构造完成,
构造调用前又必须成员初始化完成,死循环了。
所有静态成员的初始化为null,调用赋值语句new AAAAA前再初始化其它非静态成员,之后调用构造。
编译能通过,运行时候有提示Process is terminated due to StackOverflowException.
aaa必须是静态的,用static修饰。
调用构造前必须对成员aaa完成初始化,但aaa不是静态的情况下,造成aaa的初始化依赖于构造完成,
构造调用前又必须成员初始化完成,死循环了。
所有静态成员的初始化为null,调用赋值语句new AAAAA前再初始化其它非静态成员,之后调用构造。
{
}
public static function get instance():GetXML
{
if(_instance == null)
_instance = new GetXML();
return _instance
}