Что является значением вопросительного знака в угловых скобках: <? расширяет java.lang. Сопоставимый>

В Механизме Приложения, по данным JavaDoc, getTypeRank метод имеет эту подпись:

public static int getTypeRank(java.lang.Class datastoreType)

В сигнатуре метода в угловых скобках существует вопросительный знак:

Что это показывает?

11
задан cheese 28 February 2010 в 08:53
поделиться

4 ответа

? по существу указывает на подстановочный знак. означает, что «здесь можно использовать любой тип, расширяющий java.lang.Comparable (или сам Comparable)».

9
ответ дан 3 December 2019 в 08:29
поделиться

Это называется ограниченный подстановочный знак

- пример ограниченного подстановочного знака. ? обозначает неизвестный тип, как и подстановочные знаки, которые мы видели ранее. Однако в этом случае мы знаем, что этот неизвестный тип на самом деле является подтипом Comparable. (Примечание: это может быть Comparableitself или какой-то подкласс; ему не нужно буквально расширять Comparable.)

Более подробную информацию вы найдете здесь

4
ответ дан 3 December 2019 в 08:29
поделиться

Это означает «любой класс, который реализует интерфейс Comparable . Таким образом, вызов, например, будет выглядеть как getTypeRank (String.class) .

1
ответ дан 3 December 2019 в 08:29
поделиться

? относится к любому подклассу java.lang.Comparable. Другими словами, любой класс, который расширяет java.lang.Comparable.

0
ответ дан 3 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: