summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorLevi Bostian <levi.bostian@gmail.com>2015-10-06 09:35:17 -0500
committerLevi Bostian <levi.bostian@gmail.com>2015-10-06 09:35:17 -0500
commitc7fd8814af32822109949b6381156844c32422c0 (patch)
tree4950a25c85f62169f49ccf0d9d94cfa6ea6adb51
parente0f81c1a9f6329d785ecc558f1a380c24c26809d (diff)
parent8b456426407997fdbb8a0befb4181a513e585231 (diff)
Merge pull request #1357 from perlilja/java/en
[java/en] Added description for Double Brace Initialization
-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