public abstract class Enum<E extends Enum<E>>{public final int compareTo( E o) { ... }
}

Enum的源码中<E extends Enum<E>>这种格式的泛型是指:
该类只能被子类实例化,子类会继承其方法.就是类型EEnum的子类.而该类的compareTo方法参数就是类型E,既子类.

package com;enum DAY { MON, TUE, WED, THU, FRI, SAT, SUN }public class App2 {public static void main(String[] args) {DAY day = DAY.MON;System.out.println(day);}
}

使用enum关键字相当于创建了DAY类,并且DAY类继承了Enum
编译器编译结果如下:

enum DAY { MON, TUE, WED, THU, FRI, SAT, SUN }public final class DAY extends Enum<DAY> {public static final DAY MON;...static {MON = new DAY("MON", 0);}
}

DAY类继承所有Enum<DAY>的方法比如compareTo方法,而compareTo方法需要用DAY作为参数,因此用了EnumE类型形参.

参考:
http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeParameters.html#FAQ106

java 泛型 `<E extends Enum<E>>`相关推荐

  1. Java 泛型super和extend

    假设:Men extends Person 但是不能 List<Person> list = new List<Men>(); 会报错! 因为: Men is-a Person ...

  2. java 死锁演示_史上最通俗理解的Java死锁代码演示

    死锁的概念 知识储备 对象锁:Java一切皆对象,每个类都有一个class文件.由class文件可以new出对象,我们简单认识 下java对象,对象有个对象头信息,也就是这个对象概述,其中一条信息就是 ...

  3. Java 泛型 super extends 边界

    1 为什么要用通配符和边界? 使用泛型的过程中,经常出现一种很别扭的情况 比如我们有Fruit类,和它的派生类Apple class Fruit {} class Apple extends Frui ...

  4. 泛型 super和extend

    一:擦除 要理解super和extends的边界问题,首先要理解消除. 先看一个有趣的例子,代码打印结果为true public class Abrasion {public static void ...

  5. java泛型extend使用_java泛型中的? extend E 和 ? super E

    public class TestType { public static void main(String[] args) { //? extend B,在定义泛型时,只能接受B或B的子类 List ...

  6. Java泛型 通配符? extends与super

    本文来源:https://i.cnblogs.com/EditPosts.aspx?opt=1 感谢博主.本文仅供参考学习. Java 泛型 关键字说明 ? 通配符类型 <? extends T ...

  7. Java泛型中extends T和super T的区别?

    <? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概念. ...

  8. java中super()_Java 泛型中 extends 和 super 的区别是什么?

    <? extends T> 和 <? super T> 是 Java 泛型中的 "通配符(Wildcards)" 和 "边界(Bounds)&qu ...

  9. Java泛型三:通配符详解extends super

    在java泛型中,? 表示通配符,代表未知类型,< ? extends Object>表示上边界限定通配符,< ? super Object>表示下边界限定通配符. 通配符 与 ...

  10. Java泛型中extends和super的理解(转)

    E – Element (在集合中使用,因为集合中存放的是元素) T – Type(Java 类) K – Key(键) V – Value(值) N – Number(数值类型) ? – 表示不确定 ...

最新文章

  1. 【OFDM】基于simulink的OFDM系统仿真
  2. JBOSS 5.0GA 配置布署
  3. 单列设计模式 懒汉式及多线程debug
  4. 哈佛大学单细胞课程|笔记汇总 (八)
  5. java搜索引擎创建索引_搜索引擎系列 ---lucene简介 创建索引和搜索初步
  6. 求数组所有区间最大值减去最小值之差的和(贝壳笔试题)
  7. 读取properties文件方式
  8. 使用工具类DbUtils连接数据库,并简单操作数据库
  9. 猜数字的算法的一个简单实现
  10. 免费开源PDF复制格式整理神器
  11. 前端特效-霓虹灯按钮
  12. 张飞流水账:超级搞笑诠释人生哲理
  13. OS性能监控及优化——osw工具详解
  14. 老司机的奇怪noip模拟T1-guanyu
  15. sql语句,如何找出重复的数据
  16. 用 Python 实现英文单词纠错功能!这样就不担心不会辅导孩子了!
  17. 把时间当作朋友 -- 读书笔记
  18. 函数参数传递三种方式(传值方式,地址传递,引用传递)
  19. Spring Boot 整合 Shiro(三)Kaptcha验证码 附源码
  20. (三)模电不归路之稳压二极管

热门文章

  1. javascript图片轮换
  2. y7000怎么刷电池固件_redmi(红米)AC2100,刷老毛子固件
  3. jsp文件命名规范_代码规范整理
  4. 从零开始学前端:HTML的一些文本格式化标签、快捷键、和特殊符号 --- 今天你学习了吗?(CSS:Day02)
  5. 微课|中学生可以这样学Python(4.2节):break与continue语句
  6. Python花式编程案例锦集(4)
  7. Python提取docx文档中例题、插图、表格清单
  8. C语言:字符数组赋值
  9. 计算机网络考试成绩分析报告,成绩分析报告范文_成绩分析总结与反思
  10. java post 403_求助啊。。。。。。给服务器POST JSON报403