whereeaglesdare
@whereeaglesdare

Как приводятся примитивы в Java?

Добрый день
В учебнике прочитал, что по умолчанию литерал - int.
By default, Java assumes you are defining an int value with a numeric literal.

тоесть,
short i = 5;
тут 5 - по сути это int?
Почему вот это компилируется?
byte a = (int)0L;

а вот это нет?
byte a = (long)0L;
  • Вопрос задан
  • 276 просмотров
Решения вопроса 1
Bavashi
@Bavashi
Потому что по умолчанию для вычислений компилятор преобразует boolean, byte, char, short как тип int. В случае с типом long компилятор будет считать, что вы явно задали тип, который не помещается в диапазон значений byte:

Actual type	Computational type
boolean	            int
byte	            int	
char	            int	
short	            int	
int	            int	
float	            float	
reference	    reference	
returnAddress	    returnAddress	
long	            long	
double	            double
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
07 авг. 2020, в 19:51
2000 руб./за проект
07 авг. 2020, в 19:24
4000 руб./за проект