加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用静态init块

发布时间:2020-12-14 14:27:01 所属栏目:Java 来源:网络整理
导读:我知道静态init块的工作原理. 任何人都可以告诉我一些典型的用途. 解决方法 当您想要在一个地方初始化一个或多个静态变量 它是有用的,因为您可以应用异常处理,这是不可能的在线初始化. 例如: public static ImageIcon defaultIcon = ImageIO.read(..); 可以
我知道静态init块的工作原理.
任何人都可以告诉我一些典型的用途.

解决方法

当您想要在一个地方初始化一个或多个静态变量

它是有用的,因为您可以应用异常处理,这是不可能的在线初始化.

例如:

public static ImageIcon defaultIcon = ImageIO.read(..);

可以初始化

public static ImageIcon defaultIcon;
static {
   try {
       defaultIcon = ImageIO.read(..);
   } catch (IOException ex){
     System.out.println("No default icon available");
   }
}

另一个应用是复杂的初始化例如,如果一个项目需要多行代码来初始化.假设你有一个配置:

public static Configuration configuration;
static {
     confuguration = new Configuration();
     configuration.setSomething(..);
     configuration.setSomethingElse(..);
     ...
}

第三种用法是初始化一些外部API基础设施.我目前项目的一个例子:

static {
    org.apache.xml.security.Init.init();
}

但是,正如Mykola Golubyev所说,静态初始化块使得代码不易读取,所以谨慎使用它们.静态方法更加透明地做同样的事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读