正如 Sanjay T. Sharma 清楚地解释的那样,它正在创建匿名类实例。事实上,它正在扩展java.util.HashMap
. 考虑以下代码:
package com.test;
import java.util.HashMap;
import java.util.Map;
public class Demo {
public static void main(String[] args) {
Map<String, String> mapSimple = new HashMap<String, String>();
System.out.println("Simple java.util.HashMap:");
System.out.println("\t" + mapSimple.getClass());
Map<String, String> map = new HashMap<String, String>() {
{
put("a", "b");
}
};
System.out.println("Anonymous class based on java.util.HashMap:");
System.out.println("\t" + map.getClass());
System.out.println("\t" + map.getClass().getSuperclass());
}
}
它产生以下输出:
Simple java.util.HashMap:
class java.util.HashMap
Anonymous class based on java.util.HashMap:
class com.test.Demo$1
class java.util.HashMap
注意此类匿名类的名称,并且该类扩展了java.util.HashMap
.