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 TypeCheckInstruction
of
(Opcode op, ClassEntry type) Returns a type check instruction.static TypeCheckInstruction
Returns 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_CHECK
type
- 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_CHECK
type
- 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 iftype
is primitive
-