尖括号内的问号含义是什么:<?扩展java.lang.Comparable>

che*_*ese 11 java google-app-engine

在App Engine中,根据JavaDoc,该getTypeRank方法具有以下签名:

public static int getTypeRank(java.lang.Class<? extends java.lang.Comparable> datastoreType)
Run Code Online (Sandbox Code Playgroud)

在方法签名中,尖括号内有一个问号:

<? extends java.lang.Comparable>

它意味着什么?

Gab*_*abe 9

?本质上表示一个通配符. <? extends java.lang.Comparable>表示"可以在这里使用扩展java.lang.Comparable(或Comparable本身)的任何类型".


sta*_*ker 6

这称为有界通配符

<? extends Comparable>是有界通配符的示例。这 ?代表未知类型,就像我们之前看到的通配符一样。然而,在这种情况下,我们知道这个未知类型实际上是 Comparable 的子类型。(注意:它可以是 Comparable 本身,也可以是某个子类;它不需要从字面上扩展 Comparable。)

您可以在此处找到更多详细信息