Зарегистрируйтесь, чтобы продолжить обучение

Явное преобразование типов Основы Java

В программировании регулярно встречаются задачи, когда один тип данных нужно преобразовать в другой. Простейший пример – работа с формами на сайтах.

Данные формы всегда приходят в текстовом виде, даже если значение число. Вот как его можно преобразовать:

// станет int
var number = Integer.parseInt("345");
System.out.println(number); // => 345

Если нужно конвертировать из примитивного типа в примитивный, то все проще. Достаточно перед значением в скобках указать желаемый тип. В результате значение справа преобразуется в значение другого типа, указанного слева:

var result = (int) 5.1;
System.out.println(result); // => 5

Преобразование типов можно использовать внутри составных выражений:

// Дополнительные скобки помогают визуально отделить части выражения друг от друга
var result = 10 + ((int) 5.1);
System.out.println(result); // => 15

Неявное преобразование типов

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

Например, числовые типы данных совместимы друг с другом, но автоматическое преобразование из числового типа в boolean не сможет выполниться

var a = true;

// Error: incompatible types: int cannot be converted to boolean
a = 1;

Также без проблем и без потери точности автоматически выполнится преобразование из типа short в тип int. В этом случае значение типа short, которое занимает в памяти 2 байта, расширяется до типа int, которое занимает 4 байта.

short a = 5;

// преобразование от short к int
int sum = a + 1;

А вот обратное преобразование не будет выполнено автоматически

int a = 5;
// Error: incompatible types: possible lossy conversion from int to short
short sum = a + 2;

Еще одним примером неявного преобразования типов является преобразование чисел в строку при конкатенации числа со строкой. В этом случае Java автоматически преобразует число в строковое представление и объединяет его с другой строкой

var a = 10;
var result = "Число: " + a; // Число: 10

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


Дополнительные материалы

  1. Возможные виды преобразований в Java

Открыть доступ

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

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff