Class Type

    • Constructor Detail

      • Type

        protected Type​(byte type,
                       java.lang.String signature)
    • Method Detail

      • 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
      • getMethodSignature

        public static java.lang.String getMethodSignature​(Type returnType,
                                                          Type[] argTypes)
        Convert type to Java method signature, e.g. int[] f(java.lang.String x) becomes (Ljava/lang/String;)[I
        Parameters:
        returnType - what the method returns
        argTypes - what are the argument types
        Returns:
        method signature for given type(s).
      • 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
      • getSignature

        public static java.lang.String getSignature​(java.lang.reflect.Method meth)
      • getType

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

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

        public java.lang.String getSignature()
        Returns:
        signature for given type.
      • getSize

        public int getSize()
        Returns:
        stack size of this type (2 for long and double, 0 for void, 1 otherwise)
      • getType

        public byte getType()
        Returns:
        type as defined in Constants
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        hash code of Type
      • 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
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
        Returns:
        Type string, e.g. 'int[]'