假设我在泛型方法中有一个有界类型参数(Java™ 教程中的一个示例,http ://docs.oracle.com/javase/tutorial/java/generics/bounded.html ):
public static <U extends Number> void inspect(U u) {
}
然后,我可以使用任何 Number 子类型参数调用:
inspect(1);
inspect(1.0);
inspect(1.0f);
但是,这与使用带有 Number 参数的方法相同:
public static void inspect2(Number u) {
}
inspect2(1);
inspect2(1.0);
inspect2(1.0f);
在泛型方法中使用有界类型参数(扩展)有什么好处?
注意不喜欢
List<Map<String, String>> vs List<? extends Map<String, String>>
这些通用方法不需要/不需要任何子类型关系。