Java.Core.What is the role of the Class class in Java?

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:

  1. 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();
        }
    }
}

This entry was posted in Без рубрики. Bookmark the permalink.