什么是语法?
我无法理解以下语法:
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的超类。区别很重要,因为extends告诉您可以从类中得到什么(至少可以得到,也许是子类)。super告诉您可以添加到类中的内容(最多是这个,也许是超类)。
在这种特定情况下,要说的是该类型必须实现其自身或它的超类的可比对象。因此,请考虑java.util.Date。它实现Comparable<Date>
。但是java.sql.Date呢?它也实现Comparable<java.util.Date>
。
没有超级签名,SortedList将无法接受java.sql.Date的类型,因为它不实现自身的Comparable,而是实现其自身的超类。
以上是 什么是语法? 的全部内容, 来源链接: utcz.com/qa/399218.html