Hidden Features of Java

Thursday, 12. February 2009

A few days ago, I registered stackoverflow.com and found an interesting post: what are hidden features of Java?

The stuffs that I didn’t know before are

  • Double brace initialization
  • 
    	Map map=new HashMap<String,String>() {
    		{
    			put("key1","value1");
    			put("key2","value2");
    		}
    	};
    
  • Instance initializer
  • 
    public class Initializer {
    	static {
    		System.out.println("static");
    	}
    	{
    		System.out.println("instance");
    	}
    	public Initializer() {
    		System.out.println("constructor");
    	}
    }
    
  • Covariant return type
  • 
    	abstract class Base {
    		abstract List getList();
    	}
    
    	class Sub extends Base {
    		@Override
    		ArrayList getList() {
    			return null;
    		}
    	}
    

Double brace initialization uses instance initializer because first brace is for declairing annomymous inner class and second brace is for instance initializer block.

Tags: .

Leave a Reply