zoukankan      html  css  js  c++  java
  • 泛型里的super和extend

    <? extends T>和<? super T>应该怎么用?

    If your parameter is a producer, it should be <? extends T>, if it's a consumer it has to be <? super T>

    即,做生产者的方法的参数用extends,消费者的方法的参数用super。

    为什么?生产数据的类型必定要有一个最根源的父类型T,使得传给消费者时候知道最少情况的属性和方法。而消费者消费数据时,数据至少需要有类型T的属性和方法。

    做个可能不太恰当的比方,可能如果你了解数学中的上确界和下确界,马上就会明白了。

    这里翻译一下:

    <? extends T> 为 T的某个子类型 的 类

    <? super T> 为 T的某种超类 的 类

  • 相关阅读:
    MZOJ #72 数字
    MZOJ #71 maple做数学题
    MZOJ #70 FFF团
    luogu 2051 [AHOI2009]中国象棋
    uva 280
    uva 260
    文件的基本处理
    文件的基础
    Turtle库
    π的计算
  • 原文地址:https://www.cnblogs.com/771k/p/6916997.html
Copyright © 2011-2022 走看看