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");
}
};
public class Initializer {
static {
System.out.println("static");
}
{
System.out.println("instance");
}
public Initializer() {
System.out.println("constructor");
}
}
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.
