In general, new operator is used to create objects, but if we want to decide type of object to be created at runtime, there is no way we can use new operator. In this case, we have to use newInstance() method. Consider an example:
Object created for class:A
Class.forName() method return class Class object on which we are calling newInstance() method which will return the object of that class which we are passing as command line argument.
If the passed class doesn’t exist then ClassNotFoundException will occur.
InstantionException will occur if the passed class doesn’t contain default constructor as newInstance() method internally calls the default constructor of that particular class.
IllegalAccessException will occur if we don’t have access to the definition of specified class definition.
Related Article: Reflection in Java
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.