Comparable泛型踩坑
2023-02-18 15:41:21 时间
善疑人者,人亦疑之;善防人者,人亦防之。——刘基
之前写的Comparable
解决泛型限定问题
遇到了这种情况:
这是因为LocalDate
没有实现Comparable<LocalDate>
而是由其实现的接口ChronoLocalDate
去继承的Comparable<ChronoLocalDate>
并且LocalDate
去实现的Serializable
,而不是ChronoLocalDate
我们这里直接用的T extends Comparable<T>
,此处传了LocalDate
就是extends Comparable<LocalDate>
和实现Serializable
的不是同一层级,所以我们需要指定为Comparable<? super T>
,这个意思就是说允许Comparable
里的类型是它的父类或者接口,具体super
和extends
区别可以看泛型的super和extends
改成Comparable<? super T>
后,编译通过
相关文章
- java原生阻塞队列详解索引
- Java原子操作Atomic类详解
- Java SE 19 虚拟线程
- java的动态代理底层解析
- Java SE 16 record 类型说明与使用
- Java SE 19 新增特性
- Java 对象的内存布局(HotSpot 实现)
- Java 多线程(七):线程池
- Java 多线程(五):锁(三)
- Java 多线程(四):锁(二)
- Java 多线程(三):锁(一)
- Java 多线程(二):并发编程的三大特性
- Java 多线程(一):基础
- Java SE 18 新增特性
- Java SE 17 新增特性
- Java SE 16 新增特性
- Java SE 15 新增特性
- Java SE 14 新增特性
- Java SE 10 Application Class-Data Sharing 示例
- Java SE 13 新增特性