温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

泛型下限指什么

发布时间:2026-10-21 09:39:44 来源:亿速云 阅读:94 作者:小樊 栏目:编程语言

在 Java 泛型(Generics)中,泛型下限通常指的是 通配符的下限(lower bounded wildcard),用 ? super T 表示。


一、什么是泛型下限

泛型下限指的是:

允许的类型是 T 本身,或 T 的任意父类(超类)

语法形式:

<? super T>

其中:

  • T 是某个具体类型
  • ? super T 表示“T 或其父类”

二、举个例子

List<? super Integer> list;

这表示:

  • list 可以指向:
    • List<Integer>
    • List<Number>
    • List<Object>

但不能是:

  • List<Double>(Double 不是 Integer 的父类)

三、下限通配符的典型用途

1. 写入数据(生产者用上限,消费者用下限)

PECS 原则:

  • Producer → Extends
  • Consumer → Super

当集合主要用来写数据时,用 ? super T

public static void addNumbers(List<? super Integer> list) {
    list.add(1);
    list.add(2);
}

这样可以:

  • 向 List<Integer> 写
  • 向 List<Number> 写
  • 向 List<Object> 写

2. 与上限对比

通配符 含义 适合场景
? extends T T 或其子类(上限) 读数据
? super T T 或其父类(下限) 写数据
List<? extends Number> readList; // 只能读,不能写
List<? super Integer> writeList; // 能写 Integer

四、为什么叫“下限”

因为:

  • 类型范围的最低界限是 T
  • 往上(父类方向)是允许的
  • 往下(子类方向)不允许

五、简单记忆

  • ? extends T → 上限(最多到 T)
  • ? super T → 下限(最少从 T 开始)

如果你愿意,我也可以用图或结合 Comparable、Collections.sort 等实际例子再讲一遍。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手