diff options
author | Per Lilja <perlilja@gmail.com> | 2015-10-05 20:29:05 +0200 |
---|---|---|
committer | Per Lilja <perlilja@gmail.com> | 2015-10-05 20:29:05 +0200 |
commit | 8b456426407997fdbb8a0befb4181a513e585231 (patch) | |
tree | 8560f7df4eec72a2a7a8d1ee8be4ad22b5fbd09a /java.html.markdown | |
parent | d1a822f96c88855b2cbb649a4ea7b452e4104164 (diff) |
Added description for Double Brace Initialization
Diffstat (limited to 'java.html.markdown')
-rw-r--r-- | java.html.markdown | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/java.html.markdown b/java.html.markdown index e4234a39..b4757962 100644 --- a/java.html.markdown +++ b/java.html.markdown @@ -325,6 +325,33 @@ public class LearnJava { // toString returns this Object's string representation. System.out.println("trek info: " + trek.toString()); + + // Double Brace Initialization + // The Java Language has no syntax for how to create static Collections + // in an easy way. Usually you end up in the following way: + + private static final Set<String> COUNTRIES = new HashSet<String>(); + static { + validCodes.add("DENMARK"); + validCodes.add("SWEDEN"); + validCodes.add("FINLAND"); + } + + // But there's a nifty way to achive the same thing in an + // easier way, buy using something that is called Double Brace + // Initialization. + + private static final Set<String> COUNTRIES = HashSet<String>() {{ + add("DENMARK"); + add("SWEDEN"); + add("FINLAND"); + }} + + // The first brace is creating an new AnonymousInnerClass and the + // second one declares and instance initializer block. This block + // is called with the anonymous inner class is created. + // This does not only work for Collections, it works for all + // non-final classes. } // End main method } // End LearnJava class |