Spec-Zone .ru
спецификации, руководства, описания, API
Содержание | Предыдущий | Следующий | ИндексСпецификация Виртуальной машины JavaTM


checkcast_quick

Работа
Проверьте, имеет ли объект данный тип

checkcast_quick
indexbyte1
indexbyte2

Формы
checkcast_quick = 224 (0xe0)

Стек
..., objectref..., objectref

Описание
objectref должен иметь тип reference. indexbyte1 без знака и indexbyte2 используются, чтобы создать индекс в постоянный пул текущего класса (§3.6), где значение индекса (indexbyte1 << 8) | indexbyte2. Объект по тому индексу постоянного пула, должно быть, уже был успешно разрешен и должен быть классом или интерфейсным типом.

Если objectref null или может быть брошен к разрешенному классу, массиву, или интерфейсному типу, стек операнда неизменен; иначе, checkcast_quick инструкция бросает a ClassCastException.

Следующие правила используются, чтобы определить, ли objectref, который не является null может быть брошен к разрешенному типу: Если S является классом объекта, упомянутого objectref, и T является разрешенным классом, массивом, или интерфейсный тип, checkcast_quick определяет, может ли objectref быть брошен к типу T следующим образом:

S не может быть интерфейсным типом, потому что нет никаких экземпляров интерфейсов, только экземпляры классов и массивов.

Исключение на этапе выполнения
Если objectref не может быть брошен к типу разрешенного класса, checkcast_quick инструкция бросает a ClassCastException.

Примечания
Код операции этой инструкции был первоначально checkcast. Операнды checkcast инструкции не изменяются.

checkcast_quick инструкция очень подобна instanceof_quick инструкции. Это отличается по своей обработке null, его поведение, когда его тест перестал работать (checkcast_quick выдает исключение, instanceof_quick, продвигает код результата), и его эффект на стек операнда.



Содержание | Предыдущий | Следующий | Индекс

Спецификация Виртуальной машины Java (HTML, сгенерированный chsieh 13 марта 1997)
Авторское право © 1996, 1997 Sun Microsystems, Inc. Все права защищены
Пожалуйста, отправьте любые комментарии или исправления к doug.kramer@sun.com

free hit counter