java – 使用初始化块有什么好处?
发布时间:2020-12-15 04:56:20 所属栏目:Java 来源:网络整理
导读:我知道初始化块在首次加载类(静态初始化块)或创建实例(实例初始化块)时运行. class SmallInit { static int x; int y; static { x = 7 ; } // static init block { y = 8; } // instance init block} 但是,当我们这样做的时候,这有什么特别的好处: class Sm
我知道初始化块在首次加载类(静态初始化块)或创建实例(实例初始化块)时运行.
class SmallInit { static int x; int y; static { x = 7 ; } // static init block { y = 8; } // instance init block } 但是,当我们这样做的时候,这有什么特别的好处: class SmallInit { static int x = 7; int y = 8; } 解决方法
实例初始化块的一个好处是它们使
Double Brace Initialization模式成为可能.
而不是这个: Set<String> names = new HashSet<String>(); names.add("Peter"); names.add("Paul"); names.add("Mary"); 你可以这样做: Set<String> names = new HashSet<String>() {{ add("Peter"); add("Paul"); add("Mary"); }}; 第一个括号创建一个匿名内部类;第二个启动实例初始化程序块. (请注意,这意味着名称是HashSet的匿名子类的实例,但这通常不是问题.这也意味着此模式仅适用于非最终类.) 这在一次性情况下特别有用,在这种情况下将对象初始化为表达式会很方便.例如: doSomethingToSet(new HashSet<String>() {{ add("Peter"); add("Paul"); add("Mary"); }}); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |