Расширяется примитивная литература
Я читаю спецификацию языка 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