import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class SingletonProxy {
public static Hashtable<Class<?>, Object> classes = new Hashtable<Class<?>, Object>();
public static <T> T getInstance(String classname) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
Object object = null;
Class<?> klass = Class.forName("Test");
if (klass.isAnnotationPresent(Singleton.class)) {
if (!classes.containsKey(klass)) {
classes.put(klass, klass.newInstance());
}
object = findValueWithKey(klass);
}
return (T) object;
}
public static Object findValueWithKey(Class<?> key) {
Object object = null;
Set set = classes.entrySet();
Iterator it = set.iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
if (entry.getKey().equals(key))
object = entry.getValue();
}
return object;
}
}