Double Brace Initialization in Java

It is a subtle use of two basic java conceptions. First, we can create an anonymous inner class in time of class instantiation, syntax for which is usual

new Person(){};

Remember we are not exactly creating an object of Person rather we are creating an object of anonyms subclass.

Then we can define any number of initializer block in a class [Official Doc]. Syntax for that is

class Person {
        System.out.println("In an initializer block");

Bingo! Lets combine them both we get the double brace initialization

new Person(){{
    //do anything with this subclass of person

Continue reading