java 泛型 `<E extends Enum<E>>`
public abstract class Enum<E extends Enum<E>>{public final int compareTo( E o) { ... }
}
Enum的源码中<E extends Enum<E>>
这种格式的泛型是指:
该类只能被子类实例化,子类会继承其方法.就是类型E
是Enum
的子类.而该类的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
作为参数,因此用了Enum
的E
类型形参.
参考:
http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeParameters.html#FAQ106
java 泛型 `<E extends Enum<E>>`相关推荐
- Java 泛型super和extend
假设:Men extends Person 但是不能 List<Person> list = new List<Men>(); 会报错! 因为: Men is-a Person ...
- java 死锁演示_史上最通俗理解的Java死锁代码演示
死锁的概念 知识储备 对象锁:Java一切皆对象,每个类都有一个class文件.由class文件可以new出对象,我们简单认识 下java对象,对象有个对象头信息,也就是这个对象概述,其中一条信息就是 ...
- Java 泛型 super extends 边界
1 为什么要用通配符和边界? 使用泛型的过程中,经常出现一种很别扭的情况 比如我们有Fruit类,和它的派生类Apple class Fruit {} class Apple extends Frui ...
- 泛型 super和extend
一:擦除 要理解super和extends的边界问题,首先要理解消除. 先看一个有趣的例子,代码打印结果为true public class Abrasion {public static void ...
- java泛型extend使用_java泛型中的? extend E 和 ? super E
public class TestType { public static void main(String[] args) { //? extend B,在定义泛型时,只能接受B或B的子类 List ...
- Java泛型 通配符? extends与super
本文来源:https://i.cnblogs.com/EditPosts.aspx?opt=1 感谢博主.本文仅供参考学习. Java 泛型 关键字说明 ? 通配符类型 <? extends T ...
- Java泛型中extends T和super T的区别?
<? extends T>和<? super T>是Java泛型中的"通配符(Wildcards)"和"边界(Bounds)"的概念. ...
- java中super()_Java 泛型中 extends 和 super 的区别是什么?
<? extends T> 和 <? super T> 是 Java 泛型中的 "通配符(Wildcards)" 和 "边界(Bounds)&qu ...
- Java泛型三:通配符详解extends super
在java泛型中,? 表示通配符,代表未知类型,< ? extends Object>表示上边界限定通配符,< ? super Object>表示下边界限定通配符. 通配符 与 ...
- Java泛型中extends和super的理解(转)
E – Element (在集合中使用,因为集合中存放的是元素) T – Type(Java 类) K – Key(键) V – Value(值) N – Number(数值类型) ? – 表示不确定 ...
最新文章
- 【OFDM】基于simulink的OFDM系统仿真
- JBOSS 5.0GA 配置布署
- 单列设计模式 懒汉式及多线程debug
- 哈佛大学单细胞课程|笔记汇总 (八)
- java搜索引擎创建索引_搜索引擎系列 ---lucene简介 创建索引和搜索初步
- 求数组所有区间最大值减去最小值之差的和(贝壳笔试题)
- 读取properties文件方式
- 使用工具类DbUtils连接数据库,并简单操作数据库
- 猜数字的算法的一个简单实现
- 免费开源PDF复制格式整理神器
- 前端特效-霓虹灯按钮
- 张飞流水账:超级搞笑诠释人生哲理
- OS性能监控及优化——osw工具详解
- 老司机的奇怪noip模拟T1-guanyu
- sql语句,如何找出重复的数据
- 用 Python 实现英文单词纠错功能!这样就不担心不会辅导孩子了!
- 把时间当作朋友 -- 读书笔记
- 函数参数传递三种方式(传值方式,地址传递,引用传递)
- Spring Boot 整合 Shiro(三)Kaptcha验证码 附源码
- (三)模电不归路之稳压二极管
热门文章
- javascript图片轮换
- y7000怎么刷电池固件_redmi(红米)AC2100,刷老毛子固件
- jsp文件命名规范_代码规范整理
- 从零开始学前端:HTML的一些文本格式化标签、快捷键、和特殊符号 --- 今天你学习了吗?(CSS:Day02)
- 微课|中学生可以这样学Python(4.2节):break与continue语句
- Python花式编程案例锦集(4)
- Python提取docx文档中例题、插图、表格清单
- C语言:字符数组赋值
- 计算机网络考试成绩分析报告,成绩分析报告范文_成绩分析总结与反思
- java post 403_求助啊。。。。。。给服务器POST JSON报403