java.lang.Class
Instances of the class Class represent classes and interfaces in a running Java application. An enum type and a record type are classes; an annotation type is a kind of interface. Every array also belongs to a class that is reflected as a Class object shared by all arrays with the same element type and a number of dimensions. The primitive Java types(boolean, byte, char, short, int, long, float, and double), and the keyword void are also represented as Class objects.
The class has no public constructor. Instead, a Class object is constructed automatically by the Java Virtual
The machine when a class is derived from the bytes of a class file through the invocation of one of the following methods:
1. ClassLoader::defineClass.
2. java.lang.invoke.MethodHandles.Lookup::defineClass.
3 java.lang.invoke.MethodHandles.Lookup::defineHiddenClass
The methods of class Class expose many characteristics of a class or interface. Most characteristics are derived from the class file that the class loader passed to the Java Virtual Machine or from the class file passed to Lookup::defineClassor Lookup::defineHiddenClass.A few characteristics are determined by the class loading environment at run time, such as the module returned by getModule().
Implemented Interfaces:
Serializable
AnnotatedElement
GenericDeclaration
Type
Some methods of Class
arrayType(): This method returns a Class for an array type whose component type is described by this Class.
asSubclass(Class): This method casts this Class object to represent a subclass of the class represented by the specified class object.
cast(Object): This method casts an object to the class or interface represented by this Class object.
componentType(): This method returns the component type of this Class, if it describes an array type, or null otherwise.
describeConstable(): This method returns a nominal descriptor for this instance if one can be constructed, or an empty Optional if one cannot be.
descriptorString(): This method returns the descriptor string of the entity (class, interface, array class, primitive type, or void) represented by this Class object.
desiredAssertionStatus(): This method returns the assertion status that would be assigned to this class if it were to be initialized at the time this method is invoked.
Class.forName(String): This method returns the Class object associated with the class or interfaces with the given string name.
Class.forName(String, boolean, ClassLoader): his method returns the Class object associated with the class or interfaces with the given string name, using the given class loader.
getAnnotatedInterfaces(): This method returns an array of AnnotatedType objects that represent the use of types to specify super interfaces of the entity represented by this Class object.
getAnnotatedSuperclass(): This method returns an AnnotatedType object that represents the use of a type to specify the superclass of the entity represented by this Class object.
getAnnotation(Class): This method returns this element's annotation for the specified type if such an annotation is present, else null.
getAnnotations(): This method returns annotations that are present on this element. If there are no annotations present on this element, the return value is an array of length 0.
getAnnotationsByType(Class): This method returns annotations that are associated with this element.
getCanonicalName(): This method returns the canonical name of the underlying class as defined by The Java Language Specification.
getClasses(): This method returns an array containing Class objects representing all the public classes and interfaces that are members of the class represented by this Class object.
getClassLoader(): This method returns the class loader for the class. Some implementations may use null to represent the bootstrap class loader.
getComponentType(): This method returns the Class representing the component type of an array. If this class does not represent an array class this method returns null.
getConstructor(Class...): This method returns a Constructor object that reflects the specified public constructor of the class represented by this Class object.
getConstructors(): This method returns an array containing Constructor objects reflecting all the public constructors of the class represented by this Class object.
getDeclaredAnnotation(Class): This method takes one argument. This method returns this element's annotation for the specified type if such an annotation is directly present, else null.
getDeclaredAnnotations(): This method returns annotations that are directly present on this element. This method ignores inherited annotations.
getDeclaredAnnotationsByType(Class): This method returns this element's annotation(s) for the specified type if such annotations are either directly present or indirectly present.
getDeclaredClasses(): This method returns an array of Class objects reflecting all the classes and interfaces declared as members of the class represented by this Class object.
getDeclaredConstructor(Class...): This method returns a Constructor object that reflects the specified constructor of the class or interface represented by this Class object.