public class New {
/**
* 这就是类型推断
*/
public static <K, V> Map<K, V> map() {
return new HashMap<K, V>();
}
public static <T> List<T> list() {
return new ArrayList<T>();
}
public static <T> LinkedList<T> lList() {
return new LinkedList<T>();
}
public static <T> Set<T> set() {
return new HashSet<T>();
}
public static <T> Queue<T> queue() {
return new LinkedList<T>();
}
public static void main(String[] args) {
Map<Person, List<? extends Person>> pet = New.map();
f(pet);
f(New.<Person, List<? extends Person>> map());// 显示的类型说明-- 静态方法在点(.)操作符前用类名,非静态this
}
static void f(Map<Person, List<? extends Person>> pet) {
System.out.println(pet);
}
}