【类型通配符】

类型通配符

为了表示各种泛型List的父类,可以使用类型通配符

  • 类型通配符:<?>
  • List<?>:表示元素类型未知的List,它的元素可以匹配任何的类型
  • 这种带通配符的List仅表示它是各种泛型List的父类,并不能把元素添加到其中

如果不想让List<?>是任何泛型的父类,只想让它代表某一类泛型List的父类,可以使用类型通配符的上限

  • 类型通配符上限:<? extends 类型>
  • List<? extends Number>:它表示的类型是Number或者其子类型

除了可以指定类型通配符的上限也可以指定它的下限

  • 类型通配符的下限:<? super 类型>
  • List<? super Number>:它表示的类型是Number或者其父类型
java 复制代码
package com.genericity;
import java.util.ArrayList;
import java.util.List;
//Object->Number->Integer
public class GenericDemo02 {
    public static void main(String[] args) {
        //类型通配符的上限:<? extends 类型>
        //上限为Number不能是它的父类
        //List<? extends Number> list4=new ArrayList<Object>();
        List<? extends Number> list5=new ArrayList<Number>();
        List<? extends Number> list6=new ArrayList<Integer>();
        System.out.println("=====================");
        //类型通配符的下限:<? super 类型>
        List<? super Number> list7=new ArrayList<Object>();
        List<? super Number> list8=new ArrayList<Number>();
        //下限的类型为NUmber,不能比它更小
        //List<? super Number> list9=new ArrayList<Integer>();
    }
}
相关推荐
qq_31812159几秒前
Java大厂面试故事:Spring Boot、微服务与AI场景深度解析
java·spring boot·redis·微服务·ai·kafka·spring security
玛丽莲茼蒿6 分钟前
javaSE 集合框架(五)——java 8新品Stream类
java·开发语言
程序员小假13 分钟前
设计一个支持万人同时抢购商品的秒杀系统?
java·后端
L***d67020 分钟前
Spring Boot(七):Swagger 接口文档
java·spring boot·后端
C雨后彩虹29 分钟前
竖直四子棋
java·数据结构·算法·华为·面试
疾风sxp34 分钟前
nl2sql技术实现自动sql生成之langchain4j SqlDatabaseContentRetriever
java·人工智能·langchain4j
一勺菠萝丶1 小时前
PDF24 转图片出现“中间横线”的根本原因与终极解决方案(DPI 原理详解)
java
姓蔡小朋友1 小时前
Unsafe类
java
一只专注api接口开发的技术猿1 小时前
如何处理淘宝 API 的请求限流与数据缓存策略
java·大数据·开发语言·数据库·spring
荒诞硬汉1 小时前
对象数组.
java·数据结构