Зачем нужны общие типы в Java?

В Java 5 вводятся обобщения для включения типов (классов и интерфейсов) в качестве параметров при определении классов, интерфейсов и методов. Они реализованы компилятором Java как интерфейсное преобразование, называемое стиранием. Преимущества родового:

  1. Устранение типоразмеров
  2. Проверка более сильного типа во время компиляции
  3. Включение программистов для реализации общих алгоритмов

Ликвидация литья типов

Generics обеспечивают проверку типов во время компиляции. Поиск ошибок во время компиляции может сэкономить время на отладку Java-программы, потому что ошибки в компиляции намного проще найти и исправить. Если вы используете дженерики, вам не нужно явно выполнять литье типов. Компилятор Java применяет сильную проверку типов, если вы используете дженерики в своем коде и показываете ошибки, если код нарушает безопасность типа. Таким образом устраняется риск ClassCastException.

До дженериков

 
List list = new ArrayList();
list.add("Before Generic");
String s = (String) list.get(0);

В приведенном выше случае мы можем видеть приведение типов в последнюю строку.

После дженериков

 
List < String> list = new ArrayList < String>();
list.add("After Generic");
String s = list.get(0);

Проверка более сильного типа во время компиляции

Поиск ошибок во время компиляции может сэкономить время на отладку Java-программы, потому что ошибки в компиляции намного проще найти и исправить. Компилятор Java применяет сильную проверку типов к универсальному коду и выдает ошибки, если код нарушает безопасность типа.

Пример

 
List < String> list = new ArrayList < String>();
list.add("After Generic");
String s = list.get(0);

Компилятор отвечает за понимание Generics во время компиляции. Над кодом проверяется во время компиляции, поэтому гарантируется, что во время выполнения не будет проблем.

Включение разработчиков для реализации общих алгоритмов

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

Источник: http://net-informations.com/Java/cJava/generic.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector