Enum JavaType

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<JavaType>

    public enum JavaType
    extends java.lang.Enum<JavaType>
    Representations of Java types that do not exist in Java 6 but that have a special meaning to the JVM.
    • Enum Constant Summary

      Enum Constants 
      Enum Constant Description
      CALL_SITE
      The Java 7 java.lang.invoke.CallSite type.
      EXECUTABLE
      The java.lang.reflect.Executable type.
      METHOD_HANDLE
      The Java 7 java.lang.invoke.MethodHandle type.
      METHOD_HANDLES
      The Java 7 java.lang.invoke.MethodHandles type.
      METHOD_HANDLES_LOOKUP
      The Java 7 java.lang.invoke.MethodTypes.Lookup type.
      METHOD_TYPE
      The Java 7 java.lang.invoke.MethodType type.
      MODULE
      The java.lang.Module type.
      PARAMETER
      The Java 8 java.lang.reflect.Parameter type.
      VAR_HANDLE
      The Java 9 java.lang.invoke.VarHandle type.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private TypeDescription typeDescription
      The type description to represent this type which is either a loaded type or a stub.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private JavaType​(java.lang.String typeName, int modifiers, java.lang.Class<?> superClass, java.lang.Class<?>... interfaces)
      Creates a new java type representation.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      TypeDescription getTypeStub()
      Returns at least a stub representing this type where the stub does not define any methods or fields.
      java.lang.Class<?> load()
      Loads the class that is represented by this Java type.
      static JavaType valueOf​(java.lang.String name)
      Returns the enum constant of this type with the specified name.
      static JavaType[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      • Methods inherited from class java.lang.Enum

        clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • Enum Constant Detail

      • METHOD_HANDLE

        public static final JavaType METHOD_HANDLE
        The Java 7 java.lang.invoke.MethodHandle type.
      • METHOD_HANDLES

        public static final JavaType METHOD_HANDLES
        The Java 7 java.lang.invoke.MethodHandles type.
      • METHOD_TYPE

        public static final JavaType METHOD_TYPE
        The Java 7 java.lang.invoke.MethodType type.
      • METHOD_HANDLES_LOOKUP

        public static final JavaType METHOD_HANDLES_LOOKUP
        The Java 7 java.lang.invoke.MethodTypes.Lookup type.
      • CALL_SITE

        public static final JavaType CALL_SITE
        The Java 7 java.lang.invoke.CallSite type.
      • VAR_HANDLE

        public static final JavaType VAR_HANDLE
        The Java 9 java.lang.invoke.VarHandle type.
      • PARAMETER

        public static final JavaType PARAMETER
        The Java 8 java.lang.reflect.Parameter type.
      • EXECUTABLE

        public static final JavaType EXECUTABLE
        The java.lang.reflect.Executable type.
      • MODULE

        public static final JavaType MODULE
        The java.lang.Module type.
    • Field Detail

      • typeDescription

        private final TypeDescription typeDescription
        The type description to represent this type which is either a loaded type or a stub.
    • Constructor Detail

      • JavaType

        private JavaType​(java.lang.String typeName,
                         int modifiers,
                         java.lang.Class<?> superClass,
                         java.lang.Class<?>... interfaces)
        Creates a new java type representation.
        Parameters:
        typeName - The binary name of this type.
        modifiers - The modifiers of this type when creating a stub.
        superClass - The super class of this type when creating a stub.
        interfaces - The interfaces of this type when creating a stub.
    • Method Detail

      • values

        public static JavaType[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (JavaType c : JavaType.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static JavaType valueOf​(java.lang.String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        java.lang.IllegalArgumentException - if this enum type has no constant with the specified name
        java.lang.NullPointerException - if the argument is null
      • getTypeStub

        public TypeDescription getTypeStub()
        Returns at least a stub representing this type where the stub does not define any methods or fields. If a type exists for the current runtime, a loaded type representation is returned.
        Returns:
        A type description for this Java type.
      • load

        public java.lang.Class<?> load()
                                throws java.lang.ClassNotFoundException
        Loads the class that is represented by this Java type.
        Returns:
        A loaded type of this Java type.
        Throws:
        java.lang.ClassNotFoundException - If the represented type cannot be loaded.