静态属性 java_java静态属性初始化注意

偏执的太偏执、 2022-11-05 08:55 285阅读 0赞

1.非静态类包含静态属性时,初始化:

如果静态属性被初始化一个非静态对象,系统启动时就会报错!

(应为初始化静态属性的类还没加载)

案例:

public class XXX

{

private static Config config = Config.getInstance();

private static String port = config.getPort();

。。。。

这里错误了使用非静态类型去实例化静态变量;导致现象很怪异:会报出spring的配置文件不能实例化其他bean。因为Config的getInstance()不是静态的

改进方法:系统启动完成后,在第一个要执行的方法中,初始化静态变量

public void contextInitialized(ServletContextEvent e)

{

// 系统的参数初始化

Config.getInstance().init();

static Config config = Config.getInstance();

static String port = config.getPort();

总结:凡是涉及到静态变量的初始化(使用类赋初始值),最好在系统启动完成后,在第一个要执行的方法中进行初始化。

发表评论

表情:
评论列表 (有 0 条评论,285人围观)

还没有评论,来说两句吧...

相关阅读

    相关 静态方法和属性

    一、介绍 Java静态方法(Static Method)和静态属性(Static Field)是类的特殊方法 和变量。它们是与类直接关联的,而不是与类的实例关联的。这意味

    相关 静态属性 单例模式

    所谓静态属性就是 用static关键字修饰的类的属性,他所具有的特点是为所有对象或方法所共享的一个静态的属性,从内存的角度来理解,静态属性放在静态池中,只分配一次内存空