Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpGnBd 107 of 322 menu
◀ ▶

Верхняя граница в Java

Параметр типа T сам по себе не говорит, какие операции разрешены над значением. Верхняя граница записывается после ключевого слова extends: T extends Имя означает, что под T допустим только тип, который реализует этот интерфейс или наследует класс.

Метод максимума из двух значений опирается на сравнение через Comparable:

class MathUtil { static <T extends Comparable<T>> T maxOf(T a, T b) { return a.compareTo(b) >= 0 ? a : b; } } void demo() { System.out.println(MathUtil.maxOf(3, 7)); System.out.println(MathUtil.maxOf("beta", "alpha")); }

Внутри тела доступен метод compareTo для типа T, потому что граница гарантирует поддержку Comparable. Без extends такой вызов компилятор отклонил бы:

class Order { static <T extends Comparable<T>> boolean isOrdered(List<T> values) { for (int index = 1; index < values.size(); index++) { if (values.get(index - 1).compareTo(values.get(index)) > 0) { return false; } } return true; } } void demo() { System.out.println(Order.isOrdered(List.of(1, 2, 3))); System.out.println(Order.isOrdered(List.of("a", "c", "b"))); }

Объявите метод, который возвращает меньшее из двух значений с границей Comparable. Сравните 15 и 8 и выведите результат.

Дан список строк:

var strings = List.of("aa", "bb", "cc");

Сделайте метод, который проверяет, отсортирован ли список по возрастанию. Проверьте этот список и выведите ответ.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить