Расширяется примитивная литература

Я читаю спецификацию языка Java, о преобразованиях Назначений, и я пытался получить основные правила, и есть некоторая литература, которая меня сильно смущает. Есть несколько публикаций, которые говорят:

 Integer s11 = (short)7;

требуется расширение примитивного преобразования с последующим преобразованием в бокс. Это не разрешенное преобразование. Я понимаю ошибку компиляции и контексты заданий. Но действительно ли расширяется примитивное обращение? Я понимаю следующее: Integer<- Short <- short <- int Я вижу расширение между Integer и Short. или я в замешательстве?

заранее спасибо

2 ответа

Расширяющееся примитивное преобразование - это преобразование одного примитивного типа в другой примитивный тип. В вашем примере требуется расширение расширяющего примитива от short в int,

Это расширяющееся примитивное преобразование требуется для следующего преобразования в бокс (из int в Integer) будет возможно.

Если разбить выражение на два присваивания, преобразования типов будут более понятными:

int s11 = (short)7; // widening primitive conversion from short to int
Integer i11 = s11; // boxing conversion from int to Integer

Да это расширение с последующим автобоксом, т.е. int <- short с последующим Integer <- int

Другие вопросы по тегам