Java. Что такое дженерики? / What is Java Generics?

max аватар
120
Находится в разделах:

Дженерики в Java - это фича языка, которая позволяет определять и использовать обобщенные типы и методы. 

"Java Generics" - это технический термин, обозначающий набор свойств языка позволяющих определять и использовать обобщенные типы и методы. Обобщенные типы или методы отличаются от обычных тем, что имеют типизированные параметры. 


Примером дженериков или обобщенных типов может служить библитека с коллекциями в Java. Например, класс LinkedList<E> - типичный обобщенный тип. Он содержит параметр E, который представляет тип элементов, которые будут храниться в коллекции. Вместо того, чтобы просто использовать LinkedList, ничего не говоря о типе элемента в списке, мы можем использовать LinkedList<String> или LinkedList<Integer>.  Создание объектов обобщенных типов происходит посредством замены параметризированных типов реальными типами данных. Класс типа LinkedList<E> -  обобщенный тип, который содержит параметр E. Создание объектов, типа LinkedList<String> или LinkedList<Integer> называются параметризированными типами, а String и Integer - реальные типы аргументов. 

 

Какова истинная цель использования обобщенных типов в Java? 

Обобщенные типы в Java были изобретены, в первую очередь, для реализации обобщенных коллекций. 

 

Потребность использования обобщенных типов заключается, в основном, в реализации и использовании коллекций. Примеры этих коллекций можете посмотреть в Java Collection Framework. Программисты часто хотят указать, что коллекция содержит элементы определенного типа, такой как список целочисленных значений или список строк. Фреймворк коллекций, сам по себе, не является обобщенным и не предлагает никаких гомогенных коллекций элементов одинакового типа. Вместо этого, все коллекции хранят в себе ссылки на Object, а это означает, что они потенциально являются гетерогенными, предоставляют смесь объектов различных типов.  

В не-обобщенной Java, гомогенные коллекции элементов имели необходимые реализации различных классов, таких как IntegerList, StringList и т.д.  

Так для чего же нужны дженерики? А нужны они для того, чтобы реализовать один обобщенный класс, с которого можно создать объект для множества типов. Возьмем, например, обобщенный класс List. Он позволяет определять List<Integer>, List<String> и т.д. Каждый из которых является гомогенной коллекцией. В обобщенной Java, класс List также называется обобщенным классом, который содержит тип параметра. То есть класс, в котором тип параметра может быть замещен для определенного типа данных. 

Изначально, использование обобщенных типов в джаве было мотивировано потребностью иметь механизм для эффективной реализации гомогенных коллекций. 


Конец
Иммануил Кант более, чем уверен в том, что если дать человеку все, чего он желает, то в ту же минуту он почувствует, что это все не есть все.

Хорошее объяснение . я для C# пытался найти чтонибудь по дженерикам но чета ниче не нашел но для джавы тоже норм , поканает Smile

Исчерпывающе.

Я нашел ответ на свой вопрос.

Благодарю :)

 

Да в общем написано понятно.

Спасибо!

Спасибо!

Отправить комментарий

CAPTCHA
Чтобы оставить комментарий, введите пожалуйста код, изображенный на картинке
Image CAPTCHA
Введите символы, изображенные на картинке