有界类型参数(T 扩展)和上限通配符(? 扩展)之间的差异
2022-09-02 10:49:01
我知道已经发布了一个类似的问题,尽管我认为我的问题有些不同......
假设您有两种方法:
// Bounded type parameter
private static <T extends Number> void processList(List<T> someList) {
}
// Upper bound wildcard
private static void processList2(List<? extends Number> someList) {
// ...
}
据我所知,这两种方法都接受参数,这些参数的类型或子类型为 。List
Number
List
Number
但是这两种方法之间到底有什么区别呢?