dlaczego mogę ustawić prymitywne typy na null w operacjach trójskładnikowych

Zawsze myślałem, że prymitywne typy w Javie nie mogą byćnull, ponieważ jest to błąd czasu kompilacji, jeśli próbuję zrobić coś takiego:

int test = null;

Jednak w operacji trójskładnikowej wydaje się dozwolone:

int test = something != 0 ? 5 : null;

Czy operacja trójskładnikowa nie jest zbyt krótka (w tym przypadku):

int test;
if (something != 0){
    test = 5;
} else {
    test = null
}

które oczywiście nie powinny być dozwolone. jeśli ten warunek się nie powiedzie, automatycznie rzuci aNullPointerException z powodu autoboxingu. Dlaczego więc kompilator java nie pobiera takich nonsensów?

questionAnswers(1)

yourAnswerToTheQuestion