Role of the Class
Class in Java
In Java, the Class
class is a part of the Reflection API and represents metadata about a class at runtime. It is located in the java.lang
package and provides methods to:
- Obtain information about a class (e.g., its name, methods, fields, constructors, superclasses, and interfaces).
- Dynamically create objects, access fields, and invoke methods at runtime.
How to Obtain a Class
Object
A Class
object can be obtained in three primary ways:
- Using
.class
Literal (Preferred when the class is known at compile time)
Class<String> stringClass = String.class;
2. Using getClass()
Method (When you have an object instance)
String str = "Hello";
Class<?> stringClass = str.getClass();
3. Using Class.forName(String className)
(Used for dynamic loading)
Class<?> classObj = Class.forName("java.lang.String");
Example: Using Class
to Get Metadata
public class ReflectionExample {
public static void main(String[] args) {
try {
// Get the Class object
Class<?> clazz = Class.forName("java.lang.String");
// Print class name
System.out.println("Class Name: " + clazz.getName());
// Get and print all declared methods
System.out.println("\nMethods:");
for (var method : clazz.getDeclaredMethods()) {
System.out.println(method);
}
// Get and print all declared fields
System.out.println("\nFields:");
for (var field : clazz.getDeclaredFields()) {
System.out.println(field);
}
// Get and print all constructors
System.out.println("\nConstructors:");
for (var constructor : clazz.getDeclaredConstructors()) {
System.out.println(constructor);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}