package com.learn.basic.泛型;
import java.util.List;
/**
* 影响范围 Object > T
* <Object>可以传入任意类型
* <T>只接收指定的类型。
* 已知Number子类eg:Integer,Long,double等等
* <? extends Number>,这就意味着只接收接收Number类以及类的继承类
* <? super Integer>,这就意味着只接收接收Integer类以及Integer的父类Number,Object
*/
public class GenericityDemo {
/**
* 可传入任意类型,返回Object类型
*/
static Object demo001(Object obj){
return obj;
}
static List<Object> demo0011(List<Object> objectList){
return objectList;
}
/**
* 可传入任意类型,返回类型同传入的类型
*/
static <T> T demo002(T t){
return t;
}
static <T> List<T> demo0022(List<T> list){
return list;
}
/**
* 可传入元素为Integer以及其父类,Number,Object的list
*/
static void demo003(List<? super Integer> list){
}
/**
* 可传入元素为Number,以及其子类的list
*/
static void demo004(List<? extends Number> list){
}
/**
* 同上,也就是说 ? extends 没什么用 ? super 才有意义
*/
static void demo005(List<Number> list){
}
}
https://www.bilibili.com/video/BV1Rt411f7F5?p=190