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
ください。