类 Type

java.lang.Object
org.babyfish.jimmer.impl.asm.Type

public final 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.
  • 字段详细资料

    • 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 Type corresponding to the given type descriptor.
      参数:
      typeDescriptor - a field or method type descriptor.
      返回:
      the Type corresponding to the given type descriptor.
    • getType

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

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

      public static Type getType(Method method)
      Returns the method Type corresponding to the given method.
      参数:
      method - a Method object.
      返回:
      the method Type corresponding to the given method.
    • 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.
    • getObjectType

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

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

      public static Type getMethodType(Type returnType, Type... argumentTypes)
      Returns the 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 method Type corresponding to the given argument and return types.
    • 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.
    • getArgumentTypes

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

      public static Type[] getArgumentTypes(Method method)
      Returns the Type values corresponding to the argument types of the given method.
      参数:
      method - a method.
      返回:
      the Type values corresponding to the argument types of the given method.
    • 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.
    • getReturnType

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

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

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

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

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

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

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

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

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

      public int getSort()
      Returns the sort of this 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.
    • 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.
    • 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 of the method (plus one for the implicit this argument), argumentsSize, and the size of its return value, returnSize, packed into a single int i = (argumentsSize &lt;&lt; 2) | returnSize (argumentsSize is therefore equal to i &gt;&gt; 2, and returnSize to i &amp; 0x03).
    • getArgumentsAndReturnSizes

      public static int getArgumentsAndReturnSizes(String methodDescriptor)
      Computes the size of the arguments and of the return value of a method.
      参数:
      methodDescriptor - a method descriptor.
      返回:
      the size of the arguments of the method (plus one for the implicit this argument), argumentsSize, and the size of its return value, returnSize, packed into a single int i = (argumentsSize &lt;&lt; 2) | returnSize (argumentsSize is therefore equal to i &gt;&gt; 2, and returnSize to i &amp; 0x03).
    • getOpcode

      public int getOpcode(int opcode)
      Returns a JVM instruction opcode adapted to this 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 Type. For example, if this type is float and opcode is IRETURN, this method returns FRETURN.
    • equals

      public boolean equals(Object object)
      Tests if the given object is equal to this type.
      覆盖:
      equals 在类中 Object
      参数:
      object - 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.