类 Type

java.lang.Object
org.beetl.ow2.asm.Type

public class Type extends Object
A Java field or method type. This class can be used to make it easier to manipulate type and method descriptors.
作者:
Eric Bruneton, Chris Nokleberg
  • 字段概要

    字段
    修饰符和类型
    字段
    说明
    static final int
    The sort of array reference types.
    static final int
    The sort of the boolean type.
    static final Type
    The boolean type.
    static final int
    The sort of the byte type.
    static final Type
    The byte type.
    static final int
    The sort of the char type.
    static final Type
    The char type.
    static final int
    The sort of the double type.
    static final Type
    The double type.
    static final int
    The sort of the float type.
    static final Type
    The float type.
    static final int
    The sort of the int type.
    static final Type
    The int type.
    static final int
    The sort of the long type.
    static final Type
    The long type.
    static final int
    The sort of method types.
    static final int
    The sort of object reference types.
    static final int
    The sort of the short type.
    static final Type
    The short type.
    static final int
    The sort of the void type.
    static final Type
    The void type.
  • 方法概要

    修饰符和类型
    方法
    说明
    boolean
    Tests if the given object is equal to this type.
    int
    Returns the size of the arguments and of the return value of methods of this type.
    static int
    Computes the size of the arguments and of the return value of a method.
    Returns the argument types of methods of this type.
    static Type[]
    Returns the Java types corresponding to the argument types of the given method.
    static Type[]
    getArgumentTypes(String methodDescriptor)
    Returns the Java types corresponding to the argument types of the given method descriptor.
    Returns the binary className of the class corresponding to this type.
    static String
    Returns the descriptor corresponding to the given constructor.
    Returns the descriptor corresponding to this Java type.
    static String
    Returns the descriptor corresponding to the given Java type.
    int
    Returns the number of dimensions of this array type.
    Returns the type of the elements of this array type.
    Returns the internal className of the class corresponding to this object or array type.
    static String
    Returns the internal className of the given class.
    static String
    Returns the descriptor corresponding to the given method.
    static String
    getMethodDescriptor(Type returnType, Type... argumentTypes)
    Returns the descriptor corresponding to the given argument and return types.
    static Type
    getMethodType(String methodDescriptor)
    Returns the Java type corresponding to the given method descriptor.
    static Type
    getMethodType(Type returnType, Type... argumentTypes)
    Returns the Java method type corresponding to the given argument and return types.
    static Type
    getObjectType(String internalName)
    Returns the Java type corresponding to the given internal className.
    int
    getOpcode(int opcode)
    Returns a JVM instruction opcode adapted to this Java type.
    Returns the return type of methods of this type.
    static Type
    Returns the Java type corresponding to the return type of the given method.
    static Type
    getReturnType(String methodDescriptor)
    Returns the Java type corresponding to the return type of the given method descriptor.
    int
    Returns the size of values of this type.
    int
    Returns the sort of this Java type.
    static Type
    getType(Class<?> c)
    Returns the Java type corresponding to the given class.
    static Type
    Returns the Java method type corresponding to the given constructor.
    static Type
    Returns the Java method type corresponding to the given method.
    static Type
    getType(String typeDescriptor)
    Returns the Java type corresponding to the given type descriptor.
    int
    Returns a hash code value for this type.
    Returns a string representation of this type.

    从类继承的方法 java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • 字段详细资料

    • VOID

      public static final int VOID
      The sort of the void type. See getSort.
      另请参阅:
    • BOOLEAN

      public static final int BOOLEAN
      The sort of the boolean type. See getSort.
      另请参阅:
    • CHAR

      public static final int CHAR
      The sort of the char type. See getSort.
      另请参阅:
    • BYTE

      public static final int BYTE
      The sort of the byte type. See getSort.
      另请参阅:
    • SHORT

      public static final int SHORT
      The sort of the short type. See getSort.
      另请参阅:
    • INT

      public static final int INT
      The sort of the int type. See getSort.
      另请参阅:
    • FLOAT

      public static final int FLOAT
      The sort of the float type. See getSort.
      另请参阅:
    • LONG

      public static final int LONG
      The sort of the long type. See getSort.
      另请参阅:
    • DOUBLE

      public static final int DOUBLE
      The sort of the double type. See getSort.
      另请参阅:
    • ARRAY

      public static final int ARRAY
      The sort of array reference types. See getSort.
      另请参阅:
    • OBJECT

      public static final int OBJECT
      The sort of object reference types. See getSort.
      另请参阅:
    • METHOD

      public static final int METHOD
      The sort of method types. See getSort.
      另请参阅:
    • VOID_TYPE

      public static final Type VOID_TYPE
      The void type.
    • BOOLEAN_TYPE

      public static final Type BOOLEAN_TYPE
      The boolean type.
    • CHAR_TYPE

      public static final Type CHAR_TYPE
      The char type.
    • BYTE_TYPE

      public static final Type BYTE_TYPE
      The byte type.
    • SHORT_TYPE

      public static final Type SHORT_TYPE
      The short type.
    • INT_TYPE

      public static final Type INT_TYPE
      The int type.
    • FLOAT_TYPE

      public static final Type FLOAT_TYPE
      The float type.
    • LONG_TYPE

      public static final Type LONG_TYPE
      The long type.
    • DOUBLE_TYPE

      public static final Type DOUBLE_TYPE
      The double type.
  • 方法详细资料

    • getType

      public static Type getType(String typeDescriptor)
      Returns the Java type corresponding to the given type descriptor.
      参数:
      typeDescriptor - a field or method type descriptor.
      返回:
      the Java type corresponding to the given type descriptor.
    • getObjectType

      public static Type getObjectType(String internalName)
      Returns the Java type corresponding to the given internal className.
      参数:
      internalName - an internal className.
      返回:
      the Java type corresponding to the given internal className.
    • getMethodType

      public static Type getMethodType(String methodDescriptor)
      Returns the Java type corresponding to the given method descriptor. Equivalent to Type.getType(methodDescriptor).
      参数:
      methodDescriptor - a method descriptor.
      返回:
      the Java type corresponding to the given method descriptor.
    • getMethodType

      public static Type getMethodType(Type returnType, Type... argumentTypes)
      Returns the Java method type corresponding to the given argument and return types.
      参数:
      returnType - the return type of the method.
      argumentTypes - the argument types of the method.
      返回:
      the Java type corresponding to the given argument and return types.
    • getType

      public static Type getType(Class<?> c)
      Returns the Java type corresponding to the given class.
      参数:
      c - a class.
      返回:
      the Java type corresponding to the given class.
    • getType

      public static Type getType(Constructor<?> c)
      Returns the Java method type corresponding to the given constructor.
      参数:
      c - a Constructor object.
      返回:
      the Java method type corresponding to the given constructor.
    • getType

      public static Type getType(Method m)
      Returns the Java method type corresponding to the given method.
      参数:
      m - a Method object.
      返回:
      the Java method type corresponding to the given method.
    • getArgumentTypes

      public static Type[] getArgumentTypes(String methodDescriptor)
      Returns the Java types corresponding to the argument types of the given method descriptor.
      参数:
      methodDescriptor - a method descriptor.
      返回:
      the Java types corresponding to the argument types of the given method descriptor.
    • getArgumentTypes

      public static Type[] getArgumentTypes(Method method)
      Returns the Java types corresponding to the argument types of the given method.
      参数:
      method - a method.
      返回:
      the Java types corresponding to the argument types of the given method.
    • getReturnType

      public static Type getReturnType(String methodDescriptor)
      Returns the Java type corresponding to the return type of the given method descriptor.
      参数:
      methodDescriptor - a method descriptor.
      返回:
      the Java type corresponding to the return type of the given method descriptor.
    • getReturnType

      public static Type getReturnType(Method method)
      Returns the Java type corresponding to the return type of the given method.
      参数:
      method - a method.
      返回:
      the Java type corresponding to the return type of the given method.
    • getArgumentsAndReturnSizes

      public static int getArgumentsAndReturnSizes(String desc)
      Computes the size of the arguments and of the return value of a method.
      参数:
      desc - the descriptor of a method.
      返回:
      the size of the arguments of the method (plus one for the implicit this argument), argSize, and the size of its return value, retSize, packed into a single int i = (argSize << 2) | retSize (argSize is therefore equal to i >> 2, and retSize to i & 0x03).
    • getSort

      public int getSort()
      Returns the sort of this Java type.
      返回:
      VOID, BOOLEAN, CHAR, BYTE, SHORT, INT, FLOAT, LONG, DOUBLE, ARRAY, OBJECT or METHOD.
    • getDimensions

      public int getDimensions()
      Returns the number of dimensions of this array type. This method should only be used for an array type.
      返回:
      the number of dimensions of this array type.
    • getElementType

      public Type getElementType()
      Returns the type of the elements of this array type. This method should only be used for an array type.
      返回:
      Returns the type of the elements of this array type.
    • getClassName

      public String getClassName()
      Returns the binary className of the class corresponding to this type. This method must not be used on method types.
      返回:
      the binary className of the class corresponding to this type.
    • getInternalName

      public String getInternalName()
      Returns the internal className of the class corresponding to this object or array type. The internal className of a class is its fully qualified className (as returned by Class.getName(), where '.' are replaced by '/'. This method should only be used for an object or array type.
      返回:
      the internal className of the class corresponding to this object type.
    • getArgumentTypes

      public Type[] getArgumentTypes()
      Returns the argument types of methods of this type. This method should only be used for method types.
      返回:
      the argument types of methods of this type.
    • getReturnType

      public Type getReturnType()
      Returns the return type of methods of this type. This method should only be used for method types.
      返回:
      the return type of methods of this type.
    • getArgumentsAndReturnSizes

      public int getArgumentsAndReturnSizes()
      Returns the size of the arguments and of the return value of methods of this type. This method should only be used for method types.
      返回:
      the size of the arguments (plus one for the implicit this argument), argSize, and the size of the return value, retSize, packed into a single int i = (argSize << 2) | retSize (argSize is therefore equal to i >> 2, and retSize to i & 0x03).
    • getDescriptor

      public String getDescriptor()
      Returns the descriptor corresponding to this Java type.
      返回:
      the descriptor corresponding to this Java type.
    • getMethodDescriptor

      public static String getMethodDescriptor(Type returnType, Type... argumentTypes)
      Returns the descriptor corresponding to the given argument and return types.
      参数:
      returnType - the return type of the method.
      argumentTypes - the argument types of the method.
      返回:
      the descriptor corresponding to the given argument and return types.
    • getInternalName

      public static String getInternalName(Class<?> c)
      Returns the internal className of the given class. The internal className of a class is its fully qualified className, as returned by Class.getName(), where '.' are replaced by '/'.
      参数:
      c - an object or array class.
      返回:
      the internal className of the given class.
    • getDescriptor

      public static String getDescriptor(Class<?> c)
      Returns the descriptor corresponding to the given Java type.
      参数:
      c - an object class, a primitive class or an array class.
      返回:
      the descriptor corresponding to the given class.
    • getConstructorDescriptor

      public static String getConstructorDescriptor(Constructor<?> c)
      Returns the descriptor corresponding to the given constructor.
      参数:
      c - a Constructor object.
      返回:
      the descriptor of the given constructor.
    • getMethodDescriptor

      public static String getMethodDescriptor(Method m)
      Returns the descriptor corresponding to the given method.
      参数:
      m - a Method object.
      返回:
      the descriptor of the given method.
    • getSize

      public int getSize()
      Returns the size of values of this type. This method must not be used for method types.
      返回:
      the size of values of this type, i.e., 2 for long and double, 0 for void and 1 otherwise.
    • getOpcode

      public int getOpcode(int opcode)
      Returns a JVM instruction opcode adapted to this Java type. This method must not be used for method types.
      参数:
      opcode - a JVM instruction opcode. This opcode must be one of ILOAD, ISTORE, IALOAD, IASTORE, IADD, ISUB, IMUL, IDIV, IREM, INEG, ISHL, ISHR, IUSHR, IAND, IOR, IXOR and IRETURN.
      返回:
      an opcode that is similar to the given opcode, but adapted to this Java type. For example, if this type is float and opcode is IRETURN, this method returns FRETURN.
    • equals

      public boolean equals(Object o)
      Tests if the given object is equal to this type.
      覆盖:
      equals 在类中 Object
      参数:
      o - the object to be compared to this type.
      返回:
      true if the given object is equal to this type.
    • hashCode

      public int hashCode()
      Returns a hash code value for this type.
      覆盖:
      hashCode 在类中 Object
      返回:
      a hash code value for this type.
    • toString

      public String toString()
      Returns a string representation of this type.
      覆盖:
      toString 在类中 Object
      返回:
      the descriptor of this type.