Wednesday, May 4, 2016

Java syntax hack

These are equivalent code segments:

Hacky syntax:

Map map = new HashMap() {{
   put("key", "value");
}};

Normal syntax:

Map map = new HashMap();
map.put("key", "value");

Decryption of encrypted syntax

First set of braces is the anonymous inner class (subclassing HashMap). The second set of braces is an instance initializer (rather than a static one) which then sets the values on your HashMap.

Usages

This hacky syntax could be used gracefully when initializing a class member. This way you will avoid adding code to constructor(s) or in static initializer of the class.

No comments:

Post a Comment