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 Object
Abstract super class for all possible java types, namely basic types such as int, object types like String and array types, e.g. int[]
  • Field Details

    • type

      @Deprecated protected byte type
      Deprecated.
      (since 6.0) will be made private; do not access directly, use getter/setter
    • signature

      @Deprecated protected 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
  • Constructor Details

    • Type

      protected Type(byte t, String s)
  • Method Details

    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
      Returns:
      hashcode of Type
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
      Returns:
      whether the Types are equal
    • getSignature

      public 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. Returns INT for BOOLEAN, SHORT or CHAR, 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 String toString()
      Overrides:
      toString in class Object
      Returns:
      Type string, e.g. `int[]'
    • getMethodSignature

      public static 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 returns
      arg_types - what are the argument types
      Returns:
      method signature for given type(s).
    • getType

      public static Type getType(String signature) throws StringIndexOutOfBoundsException
      Convert signature to a Type object.
      Parameters:
      signature - signature string such as Ljava/lang/String;
      Returns:
      type object
      Throws:
      StringIndexOutOfBoundsException
    • getReturnType

      public static Type getReturnType(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(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(Class<?> cl)
      Convert runtime java.lang.Class to BCEL Type object.
      Parameters:
      cl - Java class
      Returns:
      corresponding Type object
    • getTypes

      public static Type[] getTypes(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 String getSignature(Method meth)