资讯专栏INFORMATION COLUMN

<T extends Comparable<? super T>>

BWrong / 1921人阅读

摘要:首先这是运用了的泛型后面跟的类型如任意字符类接口表示泛型的上限编译正确这里因为是的子类所以通过如果改为就会报错这样就限制了上限同样的表示泛型的下限这里来分析表示任意字符名,对泛型上限进行了限制即必须是的子类,然后表示中的类型下限为这样来看一

>

首先这是运用了java的泛型
①extends后面跟的类型如<任意字符 extends 类/接口>表示泛型的上限

import java.util.*;
class Demo{}
public class Test
{
    public static void main(String[] args) {
    Demo p = null; // 编译正确
//这里因为ArrayList是AbstractList的子类所以通过
//如果改为Demo p = null;就会报错这样就限制了上限
    }
}

②同样的super表示泛型的下限
>这里来分析T表示任意字符名,extends对泛型上限进行了限制即T必须是Comparable的子类,然后表示Comparable<>中的类型下限为T!这样来看一段代码辅助理解

import java.util.GregorianCalendar;

class Demo>{}

public class Test1
{
    public static void main(String[] args) {
       Demo p = null; // 编译正确
    }
}

这个可以理解为>是可以运行成功的!因为Calendar为GregorianCalendar 的父类并且GregorianCalendar 实现了Comparable,可查看api!.
如果是如下代码则运行不成功

import java.util.GregorianCalendar;
class Demo>{}
//这里把? super去掉了
public class Test
{
    public static void main(String[] args) {
       Demo p = null; 
        }
}

编译会报错!因为>相当于>但是GregorianCalendar并没有实现Comparable而是实现的Comparable,这里不在限制范围之内所以会报错!

作者:李蒙
链接:https://www.zhihu.com/question/25548135/answer/33605942
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64914.html

相关文章

  • 【Java】白话编译器对List&lt;? extend T&gt;和List&lt;? super

    摘要:里面可能有五种情况只有警察只有匪徒有警察心的平民有匪徒心的平民或者两种平民混合。编译器是非常怕死的,对于给出这种类型声明的集合,它基于向上转型的原则,用最安全的方式去处理。 如果你不懂,可以不看的问题背景:Java编译器会阻止对声明类型为List

    Pines_Cheng 评论0 收藏0
  • 讲解Web Components实现类Element UI中的Card卡片

      众所周知 Web Components 是一个浏览器原生支持的组件化方案,这个能够创建新的自定义、可封装、可重用的HTML 标记。同时也可以不用加载任何外部模块,能够直接在浏览器中查看。今天我们想讲的就是如何使用 Web Components 实现一个类 Element UI 中的 Card 卡片组件。  先进变成如雨后春笋,出现了很多优秀的框架,如:Vue、React、Angular等等,对...

    3403771864 评论0 收藏0
  • 详解ahooks解决React闭包问题方法

      想必大家都能看得懂的源码 ahooks 整体架构篇,且可以使用插件化机制优雅的封装你的请求hook,现在我们就探讨下ahooks 是怎么解决 React 的闭包问题的?。  React 的闭包问题  先来看一个例子:  importReact,{useState,useEffect}from"react";   exportdefault()=>{   const[c...

    3403771864 评论0 收藏0
  • 如何使用Python+turtle绘制图形实例代码

      对于很多Python从业者来说,要怎么才能够进阶呢?那就是要多阅读一些书籍多去找一些资料,然后去进行阅读。那么,怎么利用python里面的turlte来绘制图形的实例代码呢?下面小编就给大家详细解答下。  1.图1  如下图所示,下面图是由拼接而成的,感兴趣的可以自己去进行使用一下。  具体代码如下: #-*-coding:UTF-8-*-   importos   importtime   ...

    89542767 评论0 收藏0
  • python绘制神器五角星+小黄人+樱花方法介绍

      小编写这篇文章的主要讲解的是,关于python一些案例的介绍,主要是对五角星+小黄人+樱花,对这种方法的一个具体介绍,下面就给大家做出一个比较详细解答。  前言  这期文章我就为大家介绍关于python的艺术美——画图神器  在数学中有一种美,叫几何美,我们又称为艺术美,用具有规律的线条,迭代出美丽的图片,这就是许多艺术家在创作是的灵感渠道。下面我们就为大家准备了一个简单的五角星绘制。  涉及...

    89542767 评论0 收藏0

发表评论

0条评论

BWrong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<