package cn.itcast_07;
import java.util.ArrayList;
import java.util.Collection;
/*
*
* 泛型高级(通配符)
* ?:任意类型,如果没有明确,那么就是Object以及任意的Java类了
* ? extends E: 向下限定 E代表自己和子类
* ? super E: 向上限定,E 和它的父类
*/
public class 泛型通配符 {
public static void main(String[] args) {
//泛型如果明确的写的时候,前后必修一致
Collection<Object> c1 = new ArrayList<Object>();
//所以下面三个是错误的
// Collection<Object> c2 = new ArrayList<Animal>();
// Collection<Object> c3 = new ArrayList<Dog>();
// Collection<Object> c4 = new ArrayList<Cat>();
//?表示任意的类型的可以
Collection<Object> c5 = new ArrayList<Object>();
Collection<?> c6 = new ArrayList<Animal>();
Collection<?> c7 = new ArrayList<Dog>();
Collection<?> c8 = new ArrayList<Cat>();
//? extends E:
//报错 //Collection<? extends Animal> c9 = new ArrayList<Object>();
Collection<? extends Animal> c10 = new ArrayList<Animal>();
Collection<? extends Animal> c11 = new ArrayList<Dog>();
Collection<? extends Animal> c12 = new ArrayList<Cat>();
// ? super E:
Collection<? super Animal> c13 = new ArrayList<Object>();
Collection<? super Animal> c14 = new ArrayList<Animal>();
//报错 //Collection<? super Animal> c15 = new ArrayList<Dog>();
//报错 //Collection<? super Animal> c16 = new ArrayList<Cat>();
}
}
class Animal {
}
class Dog extends Animal{
}
class Cat extends Animal{
}
泛型高级(通配符详解举例)
最新推荐文章于 2024-05-29 23:10:16 发布
本文深入探讨Java泛型中的通配符概念,包括任意类型(?)、向下限定(?extends E)和向上限定(?super E)的使用方法及实例。通过具体代码示例,解析不同场景下通配符的正确应用。
8400

被折叠的 条评论
为什么被折叠?



