У меня есть пара мыслей относительно следующего:
public interface MaxStack<T extends Comparable <T>>
1-Почему класс, реализующий MaxStack
, должен быть написан так:
public class MaxStackclass<T extends Comparable <T>> implements MaxStack<T>
а не public class MaxStackclass<T extends Comparable <T>> implements MaxStack<T extends Comparable <T>>
?
2- почему закрытые переменные этого класса, когда я использую дженерики, должны записываться только с <T>
, а не с <T extnds Comparable<T>>
? Например, private List<T> stack= new ArrayList<T>();
3-В чем разница между <T extends Comparable<T>>
и <T extends Comparable>
- если мне нужно сравнить одиннадцать элементов в моем классе, оба будут O.K, нет?
Редактировать: Я думаю, что проблема с 3 заключается в том, что, возможно, он позволяет вставить список, который был определен вторым способом, чтобы иметь различные элементы, которые все расширяются от сопоставимых, а затем, когда я хочу сравнить их, он выиграл ' Это невозможно, так как мы не можем сравнивать String с Integer, оба расширяются от Comparable.