Что такое generics methods в Java?

340
22 июля 2021, 01:50

В классе Collections наткнулся на такую запись

public static <T extends Comparable<? super T>> void sort(List<T> list) {
        list.sort(null);
    }

Не думал что есть generic методы, решил прочитать про них в Oracle, пожалуй не смог понять, в связи с чем они появились и как работают.

(это не дубликат вопроса хотя так может показаться, я знаю для чего и как используют обобщения для классов, мне не было известно об использовании обобщения для методов)

Answer 1

Дженерики(генерики, generics, перевод - "общий, обобщенный") позволяют вам кастомизировать "общие" методы или классы для любого типа с которым вы работаете.

Допустим вам нужно создать метод который складывает вместе 2 типа. Для этого вы в интерфейсе создадите generic-метод:

public T Add<T>(T a, T b)

А в реализацях можете создать несколько разных методов:

public int Add(int a, int b)
public double Add(double a, double b)
public float Add(float a, float b)

В этом примере <T> должен заменятся на один и тот же тип данных.

Источник.
Хорошая статья.

READ ALSO
Сортировка с помощью Stream api

Сортировка с помощью Stream api

Помогите, пожалуйста, переписать программу, чтобы сортировать с помощью STREAM API

163
Как работать с форматом Q15? Как вообще тип данных float преобразовать в Q15. Можете привести пример?

Как работать с форматом Q15? Как вообще тип данных float преобразовать в Q15. Можете привести пример?

Как вообще тип данных float преобразовать в Q15 в данном коде? Можете привести пример? Нужно вычислять что то, но не знаю как именноСпасибо

141
Столкнулся с проблемой cannot find symbol

Столкнулся с проблемой cannot find symbol

Я новичок в Java поэтому не судите строгоЯ пытался потренироваться но столкнулся с проблемой что компилятор не понимает символ

240
Поиск совпадений эл-та массива с ключом hashmap

Поиск совпадений эл-та массива с ключом hashmap

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

299