我知道静态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所说,静态初始化块使得代码不易读取,所以谨慎使用它们.静态方法更加透明地做同样的事情.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。