Приведение типов
Приведение типов в Java включает в себя два основных типа операций: расширение (widening) и сужение (narrowing).
Расширение (Widening):
Расширение происходит, когда значение переменной приводится к типу данных, который может хранить больше значений. Это безопасное преобразование, так как нет потери данных. В Java расширение выполняется автоматически, если целевой тип данных имеет больший размер, чем исходный.
Пример расширения для примитивных типов данных:
int x = 10; long y = x; // Расширение типа int до longПример расширения для объектов:
class Animal {} class Dog extends Animal {} Dog dog = new Dog(); Animal animal = dog; // Расширение типа Dog до AnimalСужение (Narrowing):
Сужение происходит, когда значение переменной приводится к типу данных, который может хранить меньше значений. Это потенциально опасное преобразование, так как может привести к потере данных или исключениям. В Java сужение требует явного указания приведения типов.
Пример сужения для примитивных типов данных:
double a = 10.5; int b = (int) a; // Сужение типа double до intПример сужения для объектов:
class Animal {} class Dog extends Animal {} class Cat extends Animal {} Animal animal = new Dog(); Dog dog = (Dog) animal; // Явное сужение типа Animal до DogВажно помнить, что при сужении типов возможна потеря данных или исключения времени выполнения (ClassCastException), поэтому необходимо быть осторожным при использовании сужения. Во избежание ошибок желательно предварительно проверять тип объекта с помощью оператора
instanceof.
Last updated
Was this helpful?