summaryrefslogtreecommitdiffhomepage
path: root/java.html.markdown
diff options
context:
space:
mode:
authorPer Lilja <perlilja@gmail.com>2015-10-05 20:29:05 +0200
committerPer Lilja <perlilja@gmail.com>2015-10-05 20:29:05 +0200
commit8b456426407997fdbb8a0befb4181a513e585231 (patch)
tree8560f7df4eec72a2a7a8d1ee8be4ad22b5fbd09a /java.html.markdown
parentd1a822f96c88855b2cbb649a4ea7b452e4104164 (diff)
Added description for Double Brace Initialization
Diffstat (limited to 'java.html.markdown')
-rw-r--r--java.html.markdown27
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