“ Java思维”书摘录:
关于泛型的抱怨之一是它向其中添加了更多文本 您的代码。考虑一下:
Map<Person, List<? extends Pet>> petPeople = new HashMap<Person, List<? extends Pet>>();
您似乎在重复自己,并且编译器 应该从另一个中找出一个通用参数列表。 <,无法,...
这是否意味着两侧的显式类型规范由编译器强制执行?
相反,它对我来说似乎很好(不明确):
Map<Person, List<? extends Pet>> petPeople = new HashMap();
答案 0 :(得分:4)
您阅读的是一本古老的书本,自Java-7和增加了Diamond运算符以来,它的工作就很好了:
Map<Person, List<? extends Pet>> petPeople = new HashMap<>();