В Механизме Приложения, по данным JavaDoc, getTypeRank
метод имеет эту подпись:
public static int getTypeRank(java.lang.Class extends java.lang.Comparable> datastoreType)
В сигнатуре метода в угловых скобках существует вопросительный знак:
extends java.lang.Comparable>
Что это показывает?
?
по существу указывает на подстановочный знак. extends java.lang.Comparable>
означает, что «здесь можно использовать любой тип, расширяющий java.lang.Comparable (или сам Comparable)».
Это называется ограниченный подстановочный знак
extends Comparable>
- пример ограниченного подстановочного знака. ? обозначает неизвестный тип, как и подстановочные знаки, которые мы видели ранее. Однако в этом случае мы знаем, что этот неизвестный тип на самом деле является подтипом Comparable. (Примечание: это может быть Comparableitself или какой-то подкласс; ему не нужно буквально расширять Comparable.)
Более подробную информацию вы найдете здесь
Это означает «любой класс, который реализует интерфейс Comparable
. Таким образом, вызов, например, будет выглядеть как getTypeRank (String.class)
.
? относится к любому подклассу java.lang.Comparable. Другими словами, любой класс, который расширяет java.lang.Comparable.