Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
03 Окт 2024
2 мин
418

Понимание сырых типов в Java и почему их следует избегать

В Java, сырые типы — это обобщённые классы или интерфейсы, которые используются без указания типа параметра. Например, представим класс Box<T>, который

В Java, сырые типы — это обобщённые классы или интерфейсы, которые используются без указания типа параметра. Например, представим класс Box<T>, который может хранить объект любого типа. Если мы создадим экземпляр Box без указания типа параметра, например Box box = new Box();, то Box будет считаться сырым типом.

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

Вернёмся к нашему классу Box<T>. Если мы создадим экземпляр сырого типа Box, мы сможем положить в него объект любого типа. Но когда мы попытаемся получить объект из Box, мы не будем знать его тип, и нам придётся выполнить приведение типов. Если мы ошибёмся с типом, программа выдаст ошибку во время выполнения.

Box box = new Box();
box.put("a string");  // положили строку
Integer i = (Integer) box.get();  // пытаемся получить строку как целое число

Вместо использования сырых типов лучше указывать конкретные типы параметров при создании экземпляров обобщённых классов. Так, компилятор сможет проверить типы и предупредить о возможных проблемах уже на этапе компиляции. Если мы создадим экземпляр Box<String>, мы не сможем положить в него ничего, кроме строк, и при получении объекта из Box<String> мы будем точно знать, что это строка.

Box&lt;String&gt; box = new Box&lt;String&gt;();
box.put("a string");  // положили строку
String s = box.get();  // получили строку без приведения типов

Использование типов параметров делает код безопаснее и более понятным.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий