Enum Class TypeKind
- All Implemented Interfaces:
Serializable
,Comparable<TypeKindPREVIEW>
,Constable
TypeKind
is a preview API of the Java platform.
Preview features may be removed in a future release, or upgraded to permanent features of the Java platform.
Describes the data types Java Virtual Machine operates on.
This omits
returnAddress
(JVMS 2.3.3),
which is only used by discontinued jsr
PREVIEW and ret
PREVIEW instructions,
and includes void
(JVMS 4.3.3), which
appears as a method return type.
Computational Type
In theclass
file format, local variables (JVMS 2.6.1),
and the operand stack (JVMS 2.6.2) of the Java Virtual Machine,
boolean
, byte
, char
,
short
types do not exist and are represented by the int
computational type.
int
, float
, reference
,
returnAddress
, long
, and doule
are the computational types of the Java Virtual Machine.- See Java Virtual Machine Specification:
-
2.2 Data Types
2.11.1 Types and the Java Virtual Machine - Since:
- 22
-
Nested Class Summary
Nested classes/interfaces declared in class java.lang.Enum
Enum.EnumDesc<E extends Enum<E>>
-
Enum Constant Summary
Enum ConstantsEnum ConstantDescriptionThe primitive typeboolean
.The primitive typebyte
.The primitive typechar
.The primitive typedouble
.The primitive typefloat
.The primitive typeint
.The primitive typelong
.A reference type.The primitive typeshort
.Thevoid
type, for absence of a value. -
Method Summary
Modifier and TypeMethodDescriptionReturns the field descriptor character corresponding to this type, orL
forreference
.from
(TypeDescriptor.OfField<?> descriptor) Returns the type associated with the specified field descriptor.Returns the type associated with the specified field descriptor.fromNewarrayCode
(int newarrayCode) Returns the component type described by the array code used as an operand tonewarray
.int
Returns the code used by thenewarray
instruction to create an array of this component type, or-1
if this type is not supported bynewarray
.int
slotSize()
Returns the number of local variable index or operand stack depth consumed by this type.typeName()
Returns the human-readable name corresponding to this type.Returns the enum constant of this class with the specified name.values()
Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
BYTE
The primitive typebyte
. Its computational type isint
. It is sign-extended to anint
when loaded onto the operand stack and truncated when stored. -
SHORT
The primitive typeshort
. Its computational type isint
. It is sign-extended to anint
when loaded onto the operand stack and truncated when stored. -
INT
-
FLOAT
-
LONG
-
DOUBLE
-
REFERENCE
A reference type.- See Java Virtual Machine Specification:
-
2.4 Reference Types and Values
-
CHAR
The primitive typechar
. Its computational type isint
. It is zero-extended to anint
when loaded onto the operand stack and truncated when stored. -
BOOLEAN
The primitive typeboolean
. Its computational type isint
.0
representsfalse
, and1
representstrue
. It is zero-extended to anint
when loaded onto the operand stack and narrowed by taking the bitwise AND with1
when stored.- See Java Virtual Machine Specification:
-
2.3.4 The
boolean
Type
-
VOID
Thevoid
type, for absence of a value. While this is not a data type, this can be a method return type indicating no change in operand stack depth.- See Java Virtual Machine Specification:
-
4.3.3 Method Descriptors
-
-
Method Details
-
values
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name
- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException
- if this enum class has no constant with the specified nameNullPointerException
- if the argument is null
-
typeName
Returns the human-readable name corresponding to this type.- Returns:
- the human-readable name corresponding to this type
-
descriptor
-
newarrayCode
public int newarrayCode()Returns the code used by thenewarray
instruction to create an array of this component type, or-1
if this type is not supported bynewarray
.- Returns:
- the code used by the
newarray
instruction to create an array of this component type, or-1
if this type is not supported bynewarray
- See Java Virtual Machine Specification:
-
6.5.newarray newarray
- Since:
- 23
-
slotSize
public int slotSize()Returns the number of local variable index or operand stack depth consumed by this type. This is also the category of this type for instructions operating on the operand stack without regard to type (JVMS 2.11.1), such aspop
versuspop2
.- Returns:
- the number of local variable index or operand stack depth consumed by this type
- See Java Virtual Machine Specification:
-
2.6.1 Local Variables
2.6.2 Operand Stacks
-
asLoadable
- Returns:
- the computational type for this type, or
void
forvoid
-
fromNewarrayCode
Returns the component type described by the array code used as an operand tonewarray
.- Parameters:
newarrayCode
- the operand of thenewarray
instruction- Returns:
- the component type described by the array code used as an operand to
newarray
- Throws:
IllegalArgumentException
- if the code is invalid- See Java Virtual Machine Specification:
-
6.5.newarray newarray
- Since:
- 23
-
fromDescriptor
Returns the type associated with the specified field descriptor.- Parameters:
s
- the field descriptor- Returns:
- the type associated with the specified field descriptor
- Throws:
IllegalArgumentException
- only if the descriptor is not valid
-
from
Returns the type associated with the specified field descriptor.- Parameters:
descriptor
- the field descriptor- Returns:
- the type associated with the specified field descriptor
-
TypeKind
when preview features are enabled.