В Java вы можете использовать универсальные типы для создания классов и методов, которые могут работать с различными типами данных. Чтобы создать универсальный класс, вы используете угловые скобки и параметр типа после имени класса. Например, следующий класс определяет универсальный класс Stack, который может хранить данные любого типа:
public class Stack<T> { private T[] items; private int top; public Stack(int capacity) { items = (T[]) new Object[capacity]; top = -1; } public void push(T item) { items[++top] = item; } public T pop() { return items[top--]; } public boolean isEmpty() { return top == -1; } }
В этом примере класс Stack
имеет параметр типа T
, который можно заменить любым типом данных. Класс имеет массив типа T
для хранения данных и методы для добавления и извлечения данных из стека и из него.
Чтобы использовать класс Stack
с данными определенного типа, вы указываете тип при создании экземпляра класса. Например, чтобы создать Stack
целых чисел, вы должны написать:
Stack<Integer> intStack = new Stack<>(10);
Угловые скобки указывают, что класс Stack
следует использовать с типом Integer
, а ключевое слово new
создает новый экземпляр класса с емкостью 10.
Вы также можете использовать общие методы в Java. Чтобы создать универсальный метод, вы используете угловые скобки и параметр типа перед возвращаемым типом метода. Например, следующий метод определяет общий метод max
, который может найти максимальное значение двух объектов:
public static <T extends Comparable<T>> T max(T a, T b) { if (a.compareTo(b) > 0) { return a; } else { return b; } }
В этом примере метод max
имеет параметр типа T
, который расширяет интерфейс Comparable
и обеспечивает возможность сравнения объектов, передаваемых методу, друг с другом. Метод сравнивает два объекта и возвращает объект с более высоким значением.
Чтобы использовать метод max
с данными определенного типа, вы указываете тип в угловых скобках при вызове метода. Например, чтобы найти максимальное из двух целых чисел, вы должны написать:
int maxInt = max(5, 10);
Угловые скобки указывают, что метод max
следует использовать с типом Integer
, и метод возвращает целое число с более высоким значением.
Универсальные типы — это мощная функция Java, позволяющая создавать гибкий и повторно используемый код. Их можно использовать с классами и методами для работы с различными типами данных, а также для обеспечения безопасности типов и предотвращения ошибок программирования.