is there any way by which i can implement the singleton pattern on a reflected class? i'm obtaining the class name as a string from a properties file and using Class.forName(String) to instantiate a Class object by that name. is there a way to call a static method implemented in this class (e.g. getInstance(), to implement the singleton pattern )? rite now i'm using the work-around of calling the newInstance method of Class and then typecasting it to the class name, thus making my static getInstance method redundant.
When a class is referenced, it is loaded by a classloader. Then it is linked which usually includes resolution of symbolic references in the class. However the class itself is not initialized until specific events occur, such as invocation of certain reflective methods in the class library.
Initialization of a class or interface consists of invoking its static initializers (�2.11) and the initializers for static fields (�2.9.2) declared in the class.