Как использовать дженерики для определения отношений суперкласса с типом Comparable - PullRequest
0 голосов
/ 05 февраля 2019

Я создал метод getMax, который принимает и массив Comparable в качестве параметра и сравнивает элементы, чтобы найти элемент max, но я также должен реализовать обобщенные типы для определения отношений суперкласса, и я не совсем понимаю, как бы я это сделалтот.Ниже приведен источник для моего неуниверсального метода

public static Comparable getMax(Comparable [] array){
    Comparable max=array[0];
    for(int x=0; x<array.length;x++){
        if(array[x].compareTo(max)==1)
            max=array[x];
    }
    return max;
}

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете переписать свой метод getMax с помощью таких обобщений:

public static <T extends Comparable<T>> T getMax(T[] array){
    T max=array[0];
    for(int x=0; x<array.length;x++){
        if(array[x].compareTo(max)==1)
            max=array[x];
    }
    return max;
}

(Видите ли, уловка заменяет Comparable на T и объявляет T равным Comparable<T>.)

Тогда, например, вы можете использовать его так:

String[] strings = { "Bob", "Alice", "Charlie" };
String maxString = getMax(strings);  // gives "Charlie"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...