泛型通配符?的使用

简介: package cn.itcast.day16.generic; import java.util.ArrayList; import java.util.Collection; /* * 泛型高级(通配符) * ?: * ? extends E:向下限定 ?代表E及其子...
package cn.itcast.day16.generic;

import java.util.ArrayList;
import java.util.Collection;
/*
 * 泛型高级(通配符)
 * ?:
 * ? extends E:向下限定 ?代表E及其子类
 * ? super E:向上限定  ?代表E及其父类
 */
public class GenericDemo {
    public static void main(String[] args) {
        //泛型如果明确写的时候,前后必须一致
        Collection<Object> c=new ArrayList<Object>();
        Collection<Animal> c1=new ArrayList<Animal>();
//        Collection<Animal> c2=new ArrayList<Dog>();
//        Collection<Animal> c3=new ArrayList<Cat>();
        
        //? extends E:向下限定 ?代表E及其子类
//        Collection <? extends Animal> c4=new ArrayList<Object>();
        Collection <? extends Animal> c5 = new ArrayList<Animal>();
        Collection<? extends Animal> c6 = new ArrayList<Dog>();
        Collection<? extends Animal> c7 =new ArrayList<Cat>();
        
        
        // ? super E:向上限定  ?代表E及其父类
        Collection<? super Animal> c8=new ArrayList<Object>();
        Collection<? super Animal> c9=new ArrayList<Animal>();
//        Collection<? super Animal> c10=new ArrayList<Dog>();
//        Collection<? super Animal> c11=new ArrayList<Cat>();
        
        
    }

}

class Animal{
    
}
class Dog extends Animal{
}
class Cat extends Animal{
}
开始做,坚持做,重复做
相关文章
|
7月前
|
Java API 容器
Java泛型的继承和通配符
Java泛型的继承和通配符
45 1
|
8月前
|
存储
泛型进阶: 泛型方法 & 通配符
泛型进阶: 泛型方法 & 通配符
通配符?,*,**区别
通配符?,*,**区别
161 0
|
8月前
|
Java Go
【Java 泛型方法】泛型方法的定义和使用,泛型的通配符和泛型的上下限,泛型的注意事项
【Java 泛型方法】泛型方法的定义和使用,泛型的通配符和泛型的上下限,泛型的注意事项
|
Java
Java:泛型方法、泛型类、泛型接口、类型通配符
Java:泛型方法、泛型类、泛型接口、类型通配符
95 0
|
安全 Java 容器
Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用
Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用
181 0
Java泛型(1)--集合使用泛型Generic、自定义泛型、泛型在继承上的体现、通配符的使用
|
安全 Java
Java泛型03:通配符的使用和泛型的继承
Java泛型03:通配符的使用和泛型的继承
235 0
Java泛型03:通配符的使用和泛型的继承
|
安全 Java
Java中泛型概述、泛型方法、泛型接口、类型通配符及可变参数的使用
泛型概述、泛型方法、泛型接口、类型通配符及可变参数的使用的简单示例
153 0
|
Java
Java泛型——类型通配声明
Java泛型——类型通配声明
137 0