java {{函数}} 语法求解

Map data = new HashMap() {{
put("request", "xx");
}};
这种语法叫什么,有没有参考的资料。
不用解释含义,最好有参考链接。
谢谢

匿名初始化块
http://www.cnblogs.com/xdouby/p/5890083.html

第一层{}是匿名内部类,第二层{}是实例初始化块(http://www.javatpoint.com/instance-initializer-block);
第一层好理解,第二层可能很多人没用过,上面给了个链接,看看吧

Java的匿名内部类。http://zhangbo-peipei-163-com.iteye.com/blog/2023001

看了这些你应该明白了;
java的collection集合框架如set、map、list没有提供任何简便的方法供初始化。而每次建立集合都要将值一个个add进去。
代码如下:

Set letter=new HashSet();
letter.add('a');
letter.add('b');
//...

比较繁琐。
但用匿名内部类的话。可以略为简便些。
代码如下:
第一层括号为定义匿名内部类,第二层则为初始化模块
Set letter=new HashSet()
{
{
add('a'); add('b'); add('c'); add('d');
add('e'); add('f'); add('g'); add('h');
add('i'); add('j'); add('k'); add('l');
add('m'); add('n'); add('o'); add('p');
add('q'); add('r'); add('s'); add('t');
add('u'); add('v'); add('w'); add('x');
add('y'); add('z');
add('A'); add('B'); add('C'); add('D');
add('E'); add('F'); add('G'); add('H');
add('I'); add('J'); add('K'); add('L');
add('M'); add('N'); add('O'); add('P');
add('Q'); add('R'); add('S'); add('T');
add('U'); add('V'); add('W'); add('X');
add('Y'); add('Z');
}
};