Параметр типа может иметь несколько границ.
Синтаксис
public static <T extends Number & Comparable<T>> T maximum(T x, T y, T z)
куда
-
максимум — максимум это общий метод.
-
T — Параметр универсального типа, переданный в универсальный метод. Это может занять любой объект.
максимум — максимум это общий метод.
T — Параметр универсального типа, переданный в универсальный метод. Это может занять любой объект.
Описание
T — это параметр типа, передаваемый универсальному классу Box, и он должен быть подтипом класса Number и должен влиять на сопоставимый интерфейс. Если класс передается как связанный, он должен быть передан прежде, чем интерфейс, иначе произойдет ошибка времени компиляции.
пример
Создайте следующую Java-программу, используя любой редактор по вашему выбору.
package com.tutorialspoint; public class GenericsTester { public static void main(String[] args) { System.out.printf("Max of %d, %d and %d is %d\n\n", 3, 4, 5, maximum( 3, 4, 5 )); System.out.printf("Max of %.1f,%.1f and %.1f is %.1f\n\n", 6.6, 8.8, 7.7, maximum( 6.6, 8.8, 7.7 )); } public static <T extends Number & Comparable<T>> T maximum(T x, T y, T z) { T max = x; if(y.compareTo(max) > 0) { max = y; } if(z.compareTo(max) > 0) { max = z; } return max; } // Compiler throws error in case of below declaration /* public static <T extends Comparable<T> & Number> T maximum1(T x, T y, T z) { T max = x; if(y.compareTo(max) > 0) { max = y; } if(z.compareTo(max) > 0) { max = z; } return max; }*/ }
Это даст следующий результат —