class BinarySearch<T extends Comparable<? super T> >
Почему T extends Comparable <? super T>
включая T
, что означает включение Comparable<T>
, а не только иерархию суперкласса? Я смущен ключевым словом super, поскольку я думал, что супер будет включать только элементы суперкласса. Я новичок в java, и в Java-книге у него был следующий пример:Почему T extends Comparable <? super T> включает T? Значение включает Comparable <T>?
Это касается метода в классе, который пытался ограничить верхнюю и нижнюю границу иерархии с помощью Java.awt.Component, поэтому класс был расширяет контейнер
class CustomComponent<T extends Container>
в классе они имеют следующий метод
void describeComponent<CustomComponent<? super JPasswordField> ref)
, а затем продолжает говорить
Обратите внимание, что JPasswordField, являющийся суперклассом JTextField, сам опущен в списке допустимых объектов.
точка выше конструкции так, что если у вас есть «класс Animal реализует Comparable', а 'class Dog extends Animal', ограничение будет принимать« Dog », что сопоставимо со всеми« Animal's », даже если оно не сопоставимо с« Dog ». Тем не менее, вы не хотите ** предотвращать ** то - '? super T' * не предполагается * означает «* только» суперклассы «T'», но «' T' или любой из его суперклассов ». –
millimoose
У вас есть ссылка на документацию этого метода 'describeComponent'? Это кажется неправильным (или, возможно, искаженным), но это трудно сказать без дополнительного контекста. –
Программирование на Java Автор: Poornachandra Sarang Издатель: McGraw-Hill Паб. Дата: 20 января 2012 г. Печать ISBN-13: 978-0-071-63360-4 E-Book ISBN-13: 978-0-071-63361-1 Страницы в Печатное издание: 672 – bjackfly