Package org.apache.bcel.generic
Class Type
- java.lang.Object
-
- org.apache.bcel.generic.Type
-
- Direct Known Subclasses:
BasicType,DOUBLE_Upper,LONG_Upper,ReferenceType,ReturnaddressType
public abstract class Type extends java.lang.ObjectAbstract super class for all possible java types, namely basic types such as int, object types like String and array types, e.g. int[]
-
-
Field Summary
Fields Modifier and Type Field Description static BasicTypeBOOLEANstatic BasicTypeBYTEstatic BasicTypeCHARstatic ObjectTypeCLASSstatic BasicTypeDOUBLEstatic BasicTypeFLOATstatic BasicTypeINTstatic BasicTypeLONGstatic Type[]NO_ARGSstatic ReferenceTypeNULLstatic ObjectTypeOBJECTstatic BasicTypeSHORTprotected java.lang.StringsignatureDeprecated.(since 6.0) will be made private; do not access directly, use getter/setterstatic ObjectTypeSTRINGstatic ObjectTypeSTRINGBUFFERstatic ObjectTypeTHROWABLEprotected bytetypeDeprecated.(since 6.0) will be made private; do not access directly, use getter/setterstatic TypeUNKNOWNstatic BasicTypeVOIDPredefined constants
-
Constructor Summary
Constructors Modifier Constructor Description protectedType(byte t, java.lang.String s)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object o)static Type[]getArgumentTypes(java.lang.String signature)Convert arguments of a method (signature) to an array of Type objects.static java.lang.StringgetMethodSignature(Type return_type, Type[] arg_types)Convert type to Java method signature, e.g.static TypegetReturnType(java.lang.String signature)Convert return value of a method (signature) to a Type object.java.lang.StringgetSignature()static java.lang.StringgetSignature(java.lang.reflect.Method meth)intgetSize()bytegetType()static TypegetType(java.lang.Class<?> cl)Convert runtime java.lang.Class to BCEL Type object.static TypegetType(java.lang.String signature)Convert signature to a Type object.static Type[]getTypes(java.lang.Class<?>[] classes)Convert runtime java.lang.Class[] to BCEL Type objects.inthashCode()TypenormalizeForStackOrLocal()boolean, short and char variable are considered as int in the stack or local variable area.java.lang.StringtoString()
-
-
-
Field Detail
-
type
@Deprecated protected byte type
Deprecated.(since 6.0) will be made private; do not access directly, use getter/setter
-
signature
@Deprecated protected java.lang.String signature
Deprecated.(since 6.0) will be made private; do not access directly, use getter/setter
-
VOID
public static final BasicType VOID
Predefined constants
-
BOOLEAN
public static final BasicType BOOLEAN
-
INT
public static final BasicType INT
-
SHORT
public static final BasicType SHORT
-
BYTE
public static final BasicType BYTE
-
LONG
public static final BasicType LONG
-
DOUBLE
public static final BasicType DOUBLE
-
FLOAT
public static final BasicType FLOAT
-
CHAR
public static final BasicType CHAR
-
OBJECT
public static final ObjectType OBJECT
-
CLASS
public static final ObjectType CLASS
-
STRING
public static final ObjectType STRING
-
STRINGBUFFER
public static final ObjectType STRINGBUFFER
-
THROWABLE
public static final ObjectType THROWABLE
-
NO_ARGS
public static final Type[] NO_ARGS
-
NULL
public static final ReferenceType NULL
-
UNKNOWN
public static final Type UNKNOWN
-
-
Method Detail
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object- Returns:
- hashcode of Type
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object- Returns:
- whether the Types are equal
-
getSignature
public java.lang.String getSignature()
- Returns:
- signature for given type.
-
getType
public byte getType()
- Returns:
- type as defined in Constants
-
normalizeForStackOrLocal
public Type normalizeForStackOrLocal()
boolean, short and char variable are considered as int in the stack or local variable area. ReturnsINTforBOOLEAN,SHORTorCHAR, otherwise returns the given type.- Since:
- 6.0
-
getSize
public int getSize()
- Returns:
- stack size of this type (2 for long and double, 0 for void, 1 otherwise)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object- Returns:
- Type string, e.g. `int[]'
-
getMethodSignature
public static java.lang.String getMethodSignature(Type return_type, Type[] arg_types)
Convert type to Java method signature, e.g. int[] f(java.lang.String x) becomes (Ljava/lang/String;)[I- Parameters:
return_type- what the method returnsarg_types- what are the argument types- Returns:
- method signature for given type(s).
-
getType
public static Type getType(java.lang.String signature) throws java.lang.StringIndexOutOfBoundsException
Convert signature to a Type object.- Parameters:
signature- signature string such as Ljava/lang/String;- Returns:
- type object
- Throws:
java.lang.StringIndexOutOfBoundsException
-
getReturnType
public static Type getReturnType(java.lang.String signature)
Convert return value of a method (signature) to a Type object.- Parameters:
signature- signature string such as (Ljava/lang/String;)V- Returns:
- return type
-
getArgumentTypes
public static Type[] getArgumentTypes(java.lang.String signature)
Convert arguments of a method (signature) to an array of Type objects.- Parameters:
signature- signature string such as (Ljava/lang/String;)V- Returns:
- array of argument types
-
getType
public static Type getType(java.lang.Class<?> cl)
Convert runtime java.lang.Class to BCEL Type object.- Parameters:
cl- Java class- Returns:
- corresponding Type object
-
getTypes
public static Type[] getTypes(java.lang.Class<?>[] classes)
Convert runtime java.lang.Class[] to BCEL Type objects.- Parameters:
classes- an array of runtime class objects- Returns:
- array of corresponding Type objects
-
getSignature
public static java.lang.String getSignature(java.lang.reflect.Method meth)
-
-