类 Symbol
java.lang.Object
cn.taketoday.bytecode.Symbol
- 直接已知子类:
SymbolTable.Entry
An entry of the constant pool, of the BootstrapMethods attribute, or of the (ASM specific) type
table of a class.
- 作者:
- Eric Bruneton
- 另请参阅:
-
字段概要
字段修饰符和类型字段说明(专用程序包) static final intThe tag value of the BootstrapMethods attribute entries.(专用程序包) static final intThe tag value of CONSTANT_Class_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_Double_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_Dynamic_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_Fieldref_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_Float_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_Integer_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_InterfaceMethodref_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_InvokeDynamic_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_Long_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_MethodHandle_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_MethodType_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_Methodref_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_Module_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_NameAndType_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_Package_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_String_info JVMS structures.(专用程序包) static final intThe tag value of CONSTANT_Utf8_info JVMS structures.final longThe numeric value of this symbol.final intThe index of this symbol in the constant pool, in the BootstrapMethods attribute, or in the (ASM specific) type table of a class (depending on thetagvalue).intAdditional information about this symbol, generally computed lazily.(专用程序包) static final intThe tag value of a merged type entry in the (ASM specific) type table of a class.final StringThe name of the class field or method corresponding to this symbol.final StringThe internal name of the owner class of this symbol.final intA tag indicating the type of this symbol.(专用程序包) static final intThe tag value of a normal type entry in the (ASM specific) type table of a class.(专用程序包) static final intThe tag value of anFrame.ITEM_UNINITIALIZEDtype entry in the type table of a class.final StringThe string value of this symbol. -
构造器概要
构造器 -
方法概要
-
字段详细资料
-
CONSTANT_CLASS_TAG
static final int CONSTANT_CLASS_TAGThe tag value of CONSTANT_Class_info JVMS structures.- 另请参阅:
-
CONSTANT_FIELDREF_TAG
static final int CONSTANT_FIELDREF_TAGThe tag value of CONSTANT_Fieldref_info JVMS structures.- 另请参阅:
-
CONSTANT_METHODREF_TAG
static final int CONSTANT_METHODREF_TAGThe tag value of CONSTANT_Methodref_info JVMS structures.- 另请参阅:
-
CONSTANT_INTERFACE_METHODREF_TAG
static final int CONSTANT_INTERFACE_METHODREF_TAGThe tag value of CONSTANT_InterfaceMethodref_info JVMS structures.- 另请参阅:
-
CONSTANT_STRING_TAG
static final int CONSTANT_STRING_TAGThe tag value of CONSTANT_String_info JVMS structures.- 另请参阅:
-
CONSTANT_INTEGER_TAG
static final int CONSTANT_INTEGER_TAGThe tag value of CONSTANT_Integer_info JVMS structures.- 另请参阅:
-
CONSTANT_FLOAT_TAG
static final int CONSTANT_FLOAT_TAGThe tag value of CONSTANT_Float_info JVMS structures.- 另请参阅:
-
CONSTANT_LONG_TAG
static final int CONSTANT_LONG_TAGThe tag value of CONSTANT_Long_info JVMS structures.- 另请参阅:
-
CONSTANT_DOUBLE_TAG
static final int CONSTANT_DOUBLE_TAGThe tag value of CONSTANT_Double_info JVMS structures.- 另请参阅:
-
CONSTANT_NAME_AND_TYPE_TAG
static final int CONSTANT_NAME_AND_TYPE_TAGThe tag value of CONSTANT_NameAndType_info JVMS structures.- 另请参阅:
-
CONSTANT_UTF8_TAG
static final int CONSTANT_UTF8_TAGThe tag value of CONSTANT_Utf8_info JVMS structures.- 另请参阅:
-
CONSTANT_METHOD_HANDLE_TAG
static final int CONSTANT_METHOD_HANDLE_TAGThe tag value of CONSTANT_MethodHandle_info JVMS structures.- 另请参阅:
-
CONSTANT_METHOD_TYPE_TAG
static final int CONSTANT_METHOD_TYPE_TAGThe tag value of CONSTANT_MethodType_info JVMS structures.- 另请参阅:
-
CONSTANT_DYNAMIC_TAG
static final int CONSTANT_DYNAMIC_TAGThe tag value of CONSTANT_Dynamic_info JVMS structures.- 另请参阅:
-
CONSTANT_INVOKE_DYNAMIC_TAG
static final int CONSTANT_INVOKE_DYNAMIC_TAGThe tag value of CONSTANT_InvokeDynamic_info JVMS structures.- 另请参阅:
-
CONSTANT_MODULE_TAG
static final int CONSTANT_MODULE_TAGThe tag value of CONSTANT_Module_info JVMS structures.- 另请参阅:
-
CONSTANT_PACKAGE_TAG
static final int CONSTANT_PACKAGE_TAGThe tag value of CONSTANT_Package_info JVMS structures.- 另请参阅:
-
BOOTSTRAP_METHOD_TAG
static final int BOOTSTRAP_METHOD_TAGThe tag value of the BootstrapMethods attribute entries.- 另请参阅:
-
TYPE_TAG
static final int TYPE_TAGThe tag value of a normal type entry in the (ASM specific) type table of a class.- 另请参阅:
-
UNINITIALIZED_TYPE_TAG
static final int UNINITIALIZED_TYPE_TAGThe tag value of anFrame.ITEM_UNINITIALIZEDtype entry in the type table of a class.- 另请参阅:
-
MERGED_TYPE_TAG
static final int MERGED_TYPE_TAGThe tag value of a merged type entry in the (ASM specific) type table of a class.- 另请参阅:
-
index
public final int indexThe index of this symbol in the constant pool, in the BootstrapMethods attribute, or in the (ASM specific) type table of a class (depending on thetagvalue). -
tag
public final int tagA tag indicating the type of this symbol. Must be one of the static tag values defined in this class. -
owner
The internal name of the owner class of this symbol. Only used forCONSTANT_FIELDREF_TAG,CONSTANT_METHODREF_TAG,CONSTANT_INTERFACE_METHODREF_TAG, andCONSTANT_METHOD_HANDLE_TAGsymbols. -
name
The name of the class field or method corresponding to this symbol. Only used forCONSTANT_FIELDREF_TAG,CONSTANT_METHODREF_TAG,CONSTANT_INTERFACE_METHODREF_TAG,CONSTANT_NAME_AND_TYPE_TAG,CONSTANT_METHOD_HANDLE_TAG,CONSTANT_DYNAMIC_TAGandCONSTANT_INVOKE_DYNAMIC_TAGsymbols. -
value
The string value of this symbol. This is:- a field or method descriptor for
CONSTANT_FIELDREF_TAG,CONSTANT_METHODREF_TAG,CONSTANT_INTERFACE_METHODREF_TAG,CONSTANT_NAME_AND_TYPE_TAG,CONSTANT_METHOD_HANDLE_TAG,CONSTANT_METHOD_TYPE_TAG,CONSTANT_DYNAMIC_TAGandCONSTANT_INVOKE_DYNAMIC_TAGsymbols, - an arbitrary string for
CONSTANT_UTF8_TAGandCONSTANT_STRING_TAGsymbols, - an internal class name for
CONSTANT_CLASS_TAG,TYPE_TAGandUNINITIALIZED_TYPE_TAGsymbols, - null for the other types of symbol.
- a field or method descriptor for
-
data
public final long dataThe numeric value of this symbol. This is:- the symbol's value for
CONSTANT_INTEGER_TAG,CONSTANT_FLOAT_TAG,CONSTANT_LONG_TAG,CONSTANT_DOUBLE_TAG, - the CONSTANT_MethodHandle_info reference_kind field value for
CONSTANT_METHOD_HANDLE_TAGsymbols, - the CONSTANT_InvokeDynamic_info bootstrap_method_attr_index field value for
CONSTANT_INVOKE_DYNAMIC_TAGsymbols, - the offset of a bootstrap method in the BootstrapMethods boostrap_methods array, for
CONSTANT_DYNAMIC_TAGorBOOTSTRAP_METHOD_TAGsymbols, - the bytecode offset of the NEW instruction that created an
Frame.ITEM_UNINITIALIZEDtype forUNINITIALIZED_TYPE_TAGsymbols, - the indices (in the class' type table) of two
TYPE_TAGsource types forMERGED_TYPE_TAGsymbols, - 0 for the other types of symbol.
- the symbol's value for
-
info
public int infoAdditional information about this symbol, generally computed lazily. Warning: the value of this field is ignored when comparing Symbol instances (to avoid duplicate entries in a SymbolTable). Therefore, this field should only contain data that can be computed from the other fields of this class. It contains:- the
Type.getArgumentsAndReturnSizes()of the symbol's method descriptor forCONSTANT_METHODREF_TAG,CONSTANT_INTERFACE_METHODREF_TAGandCONSTANT_INVOKE_DYNAMIC_TAGsymbols, - the index in the InnerClasses_attribute 'classes' array (plus one) corresponding to this
class, for
CONSTANT_CLASS_TAGsymbols, - the index (in the class' type table) of the merged type of the two source types for
MERGED_TYPE_TAGsymbols, - 0 for the other types of symbol, or if this field has not been computed yet.
- the
-
-
构造器详细资料
-
Symbol
Constructs a new Symbol. This constructor can't be used directly because the Symbol class is abstract. Instead, use the factory methods of theSymbolTableclass.- 参数:
index- the symbol index in the constant pool, in the BootstrapMethods attribute, or in the (ASM specific) type table of a class (depending on 'tag').tag- the symbol type. Must be one of the static tag values defined in this class.owner- The internal name of the symbol's owner class. Maybe null.name- The name of the symbol's corresponding class field or method. Maybe null.value- The string value of this symbol. Maybe null.data- The numeric value of this symbol.
-
-
方法详细资料
-
getArgumentsAndReturnSizes
int getArgumentsAndReturnSizes()Returns the resultType.getArgumentsAndReturnSizes()onvalue.- 返回:
- the result
Type.getArgumentsAndReturnSizes()onvalue(memoized ininfofor efficiency). This should only be used forCONSTANT_METHODREF_TAG,CONSTANT_INTERFACE_METHODREF_TAGandCONSTANT_INVOKE_DYNAMIC_TAGsymbols.
-