Java中无界通配符分类:
- 上界通配符 < ? extends E>
- 下界通配符 < ? super E>
说明如下:
< ? extends E>
上届:如何上?extends 就是父类与子类 都可以作为形参传入。
举个例子
设计模式中我们经常提到:职责单一原则。就是我们把一段公共的逻辑封装起来,共其他接口复用。避免写重复代码。
封装肯定会想到方法的封装,伴随着就会方法的入参。也就所谓的形参。
那就看段代码
public static void main(String[] args) {
子类名 子对象 = new 子类名();
子对象.setSaleOrg("sssss");
子对象.setProjectId("1111");
子对象.setProjectName("song");
List<子对象> 子对象集合 = new ArrayList<>();
子对象集合.add(子对象);
ssss(子对象集合,子对象);
}
/**
公共的逻辑处理,子类可以往下传参
**/
public static void ssss(List<? extends 父类Base> 父类Bases变量,父类Base 父类Base) {
for (父类Base base : 父类Bases变量) {
System.out.println(base.toString());
}
}
public static void 编译不通过的函数(List<父类Base> 父类Bases变量,父类Base 父类Base) {
for (父类Base base : 父类Bases变量) {
System.out.println(base.toString());
}
}
< ? super E>
下界: 用 super 进行声明,表示参数化的类型可能是所指定的类型,或者是此类型的父类型,直至 Object
这个就不举例了哈