Interface TypeCheckInstruction
- All Superinterfaces:
ClassFileElement,CodeElement,Instruction
Models an
instanceof or a checkcast
instruction in the code array of a Code attribute. Corresponding
opcodes have a kind of Opcode.Kind.TYPE_CHECK.
Delivered as a CodeElement when traversing the elements of a CodeModel.
An instanceof checks the type and pushes an integer to the operand stack.
A checkcast checks the type and throws a ClassCastException if
the check fails. instanceof treat the null reference as a
failure, while checkcast treat the null reference as a success.
A type check instruction is composite:
TypeCheckInstruction(
Opcode opcode,
ClassEntry type
)
- Since:
- 24
-
Method Summary
Modifier and TypeMethodDescriptionstatic TypeCheckInstructionof(Opcode op, ClassEntry type) Returns a type check instruction.static TypeCheckInstructionReturns a type check instruction.type()Returns the type against which the instruction checks.Methods declared in interface java.lang.classfile.Instruction
opcode, sizeInBytes
-
Method Details
-
type
ClassEntry type()Returns the type against which the instruction checks.- Returns:
- the type against which the instruction checks
-
of
Returns a type check instruction.- Parameters:
op- the opcode for the specific type of type check instruction, which must be of kindOpcode.Kind.TYPE_CHECKtype- the type against which to check or cast- Returns:
- a type check instruction
- Throws:
IllegalArgumentException- if the opcode kind is notOpcode.Kind.TYPE_CHECK
-
of
Returns a type check instruction.- Parameters:
op- the opcode for the specific type of type check instruction, which must be of kindOpcode.Kind.TYPE_CHECKtype- the type against which to check or cast- Returns:
- a type check instruction
- Throws:
IllegalArgumentException- if the opcode kind is notOpcode.Kind.TYPE_CHECK, or iftypeis primitive
-