Что означает синтаксис <E> в Java?
Я быстро погуглил ответ, но не смог найти или придумать точные параметры поиска.
Я самостоятельно изучаю Java, но не могу понять смысл определённого синтаксиса.
public class Node<E>{
E elem;
Node<E> next, previous;
}
Что означает <E>
? Я смутно помню, что угловые скобки как-то связаны с векторами, но исходя из приведенного выше кода у меня складывается впечатление, что это связано с перечислениями.
Буду признателен за любую помощь или пояснение. Спасибо.
1 ответ(ов)
В приведенном вами примере <E>
обозначает параметр типа класса Node. Параметр типа определяет, что он может ссылаться на любой тип (например, String, Integer, Employee и т. д.). В Java есть соглашения по именованию параметров типов, которые выглядят следующим образом:
- T - Тип
- E - Элемент
- K - Ключ
- N - Число
- V - Значение
Рассмотрим следующий пример:
public class Node<E>{
E elem;
Node<E> next, previous;
}
class Test{
Node<String> obj = new Node<>();
}
В этом примере в фоне класс Node с параметром 'E' будет ссылаться на тип String, и класс будет выглядеть следующим образом:
public class Node<String>{
String elem;
Node<String> next, previous;
}
Вы можете использовать как String, так и Integer, Character, Employee и другие типы в качестве параметра типа.
Кроме того, дженерики можно использовать с интерфейсами, методами и конструкторами.
Для получения дополнительной информации о дженериках посетите следующие ссылки:
Лучший способ "отрицать" оператор instanceof
Как экранировать % в String.Format?
Почему нет ConcurrentHashSet, если есть ConcurrentHashMap?
Как объявить массив в одну строку?
Какие проблемы следует учитывать при переопределении equals и hashCode в Java?