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所说,静态初始化块使得代码不易读取,所以谨慎使用它们.静态方法更加透明地做同样的事情. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java获取鼠标在屏幕上坐标的方法
- java – Maven项目设计 – 共享一个共同的项目
- java – 使用guice注入与actor抛出空指针
- Hibernate hibernate.default_schema属性:指定默认的表空间
- 多线程 – AsyncCall与Delphi 2007
- java-ee – 如何将来自不同项目模块的@Inject对象包含在jar
- java – 构造器不是类的成员?
- Java Statement.getGeneratedKeys()方法:获取自动生成的键
- Java concurrency之LockSupport_动力节点Java学院整理
- Java中"equals"和"=="的区别