почему я могу установить нулевые типы примитивов в троичных операциях
Я всегда думал, что примитивные типы в Java не могут бытьnull
, так как это ошибка времени компиляции, если я пытаюсь сделать что-то вроде этого:
int test = null;
Однако в троичной операции кажется разрешенным:
int test = something != 0 ? 5 : null;
Не является ли троичная операция просто короткой (в данном случае):
int test;
if (something != 0){
test = 5;
} else {
test = null
}
что, конечно, не должно быть разрешено. если это условие не выполняется, он автоматически броситNullPointerException
из-за автобокса. Так почему же java-компилятор не получает чепуху, подобную этой?