通用实例创建的类型推断

你可以使用

Map<String, List<String>> myMap = new HashMap<>();

代替

Map<String, List<String>> myMap = new HashMap<String, List<String>>();

但是,你不能使用

List<String> list = new ArrayList<>();
list.add("A");

  // The following statement should fail since addAll expects
  // Collection<? extends String>

list.addAll(new ArrayList<>());

因为它无法编译。请注意,钻石通常用于方法调用; 但是,建议你主要将钻石用于变量声明。