Class forName(String, boolean, ClassLoader) method in Java with Examples

The forName(String, boolean, ClassLoader) method of java.lang.Class class is used to get the instance of this Class with the specified class name, using the specified class loader. The class is initialized only if the initialize parameter is true and if it has not been initialized earlier.

Syntax:

public static Class<T>
 forName(String className, 
         boolean initialize, 
         ClassLoader classLoader) 
 throws ClassNotFoundException

Parameter: This method accepts following parameters:



  • className which is the Class for which its instance is required.
  • initialize which is the boolean to state if this class instance needs to be initialized or not.
  • classLoader which is the ClassLoader from which this Class must be loaded.

Return Value: This method returns the instance of this Class fetched using the specified parameters.

Exception: This method throws following Excpetions:

  • LinkageError: if the linkage fails
  • ExceptionInInitializerError: if the initialization provoked by this method fails
  • ClassNotFoundException: if the class cannot be located
  • SecurityException: if a security manager is present, and the loader is null, and the caller’s class loader is not null, and the caller does not have the RuntimePermission(“getClassLoader”)

Below programs demonstrate the forName() method.

Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate forName() method
  
public class Test {
    public static void main(String[] args)
        throws ClassNotFoundException
    {
  
        // returns the Class object for this class
        Class myClass = Class.forName("Test");
  
        ClassLoader loader = myClass.getClassLoader();
  
        // get the Class instance using forName method
        Class c1
            = Class.forName("java.lang.String",
                            true,
                            loader);
  
        System.out.print("Class represented by c1: "
                         + c1.toString());
    }
}

chevron_right


Output:

Class represented by c1: class java.lang.String

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate forName() method
  
public class Test {
    public static void main(String[] args)
        throws ClassNotFoundException
    {
  
        // returns the Class object for this class
        Class myClass = Class.forName("Test");
  
        ClassLoader loader = myClass.getClassLoader();
  
        // get the Class instance using forName method
        Class c1
            = Class.forName("java.lang.Integer",
                            false,
                            loader);
  
        System.out.print("Class represented by c1: "
                         + c1.toString());
    }
}

chevron_right


Output:

Class represented by c1: class java.lang.Integer

Reference: https://docs.oracle.com/javase/9/docs/api/java/lang/Class.html#forName-java.lang.String-boolean-java.lang.ClassLoader-

java-img




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.