gpt4 book ai didi

java - 什么是 语法?

转载 作者:行者123 更新时间:2023-12-02 08:08:40 25 4
gpt4 key购买 nike

我无法理解以下语法:

public class SortedList< T extends Comparable< ? super T> > extends LinkedList< T >

我看到类 SortedList 扩展了 LinkedList。我只是不知道什么

T extends Comparable< ? super T>

意思是。

到目前为止我的理解是类型 T 必须是实现 Comparable 的类型...但是 < ? super T > 是什么? ?

最佳答案

泛型中的super与extends相反。与其说可比较的泛型类型必须是 T 的子类,不如说它必须是 T 的父类(super class)。这种区别很重要,因为 extends 告诉您可以从类中得到什么(您至少得到这个,也许是一个子类)。 super 告诉您可以将什么放入类中(最多是这个,也许是一个父类(super class))。

在这种特定情况下,它的意思是该类型必须实现其自身或其父类(super class)的可比较性。所以考虑java.util.Date。它实现了Comparable<Date> 。但是 java.sql.Date 呢?它实现了Comparable<java.util.Date>也是如此。

如果没有 super 签名,SortedList 将无法接受 java.sql.Date 类型,因为它没有实现自身的 Comparable,而是实现了其自身的父类(super class)。

关于java - 什么是<? super T> 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19261130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com