Работа с универсальными типами в Java (сравнение и суммирование с использованием одного и того же типа) - PullRequest
1 голос
/ 28 марта 2012

Я искал ответ на сложный вопрос в моем первом курсе java, в частности, мне нужно сделать программу, способную как суммировать элементы в общем списке, так и находить самое высокое и самое низкое в списке.

Я вполне способен выполнить обе эти задачи по отдельности, имея T (универсальный тип), расширение Number для суммирования и Comparable для сравнения.Проблема возникает, когда я пытаюсь выполнить обе задачи для одного и того же универсального типа, поскольку java не способен к множественному наследованию.быть классом Number?

Фрагменты кода и советы приветствуются!

1 Ответ

5 голосов
/ 28 марта 2012

T extends Number & Comparable<T> должен это сделать. T extends Number & Comparable<? super T> немного более общий.

Java поддерживает «множественное наследование интерфейса» (и, возможно, несколько странное множественное наследование реализации »в Java SE 8). Класс расширяет еще один класс и может реализовывать множество интерфейсов.

(Не уверен, что java.lang.Number - это то, что вы хотите для суммирования. Возможно, вы захотите ввести свой собственный тип в аналогичную строку с Comparator.)

...