| Contents | Prev | Next | Index | The JavaTM Virtual Machine Specification |
| checkcast_quick | |
| indexbyte1 | |
| indexbyte2 |
Forms
checkcast_quick = 224 (0xe0)
Stack
..., objectref
..., objectref
Description
The objectref must be of type reference. The unsigned indexbyte1 and indexbyte2 are used to construct an index into the constant pool of the current class (§3.6), where the value of the index is (indexbyte1 << 8) | indexbyte2. The object at that index of the constant pool must already have been successfully resolved and must be a class or interface type.
If objectref is null or can be cast to the resolved class, array, or interface type, the operand stack is unchanged; otherwise, the checkcast_quick instruction throws a ClassCastException.
The following rules are used to determine whether an objectref that is not null can be cast to the resolved type: If S is the class of the object referred to by objectref and T is the resolved class, array, or interface type, checkcast_quick determines whether objectref can be cast to type T as follows:
[], that is, an array of components of type SC, then:
Object (§2.4.6).
[], that is, an array of components of type TC, then one of the following must be true:
Runtime Exception
If objectref cannot be cast to the type of the resolved class, the checkcast_quick instruction throws a ClassCastException.
Notes
The opcode of this instruction was originally checkcast. The operands of the checkcast instruction are not modified.
The checkcast_quick instruction is very similar to the instanceof_quick instruction. It differs in its treatment of null, its behavior when its test fails (checkcast_quick throws an exception, instanceof_quick pushes a result code), and its effect on the operand stack.
Contents | Prev | Next | Index
Java Virtual Machine Specification (HTML generated by chsieh on March 13, 1997)
Copyright © 1996, 1997 Sun Microsystems, Inc.
All rights reserved
Please send any comments or corrections to doug.kramer@sun.com