Class.forname() vs clone()  
Author Message
iksrazal





PostPosted: 2003-6-27 23:03:00 Top

java-programmer, Class.forname() vs clone() email***@***.com (Mitch Ratisher) wrote in message news:<email***@***.com>...
> email***@***.com (iksrazal) wrote in message news:<email***@***.com>...
> > email***@***.com (Mitch Ratisher) wrote in message news:<email***@***.com>...
> > > I'm not quite sure what you are trying to do, but the way I've done
> > > factories is to load a Map with Class objects when the factory is
> > > created. Then all you have to do is pass the Map whatever you mapped
> > > the class to, and call newInstance() on the Class object.
> > >
> >
> > Could you post some code? I've seen maps of objects using clone, and
> > passing a class name string to forname/newInstance, but never maps
> > directly with newInstance.
> >
> > I have a Abstract class, and I want to use a static method to retrieve
> > the requested factory. The class is not a singleton, although I
> > suppose it could be.
> >
> > Thanks for the reply,
> > iksrazal
>
>
>
> private static Map map = new HashMap();
>
> // static initializer
> static {
> map.put("class1" MyClass1.class);
> map.put("class2" MyClass2.class);
> }
>
> public static Object newObject(String type)
> {
> Class clazz = (Class)map.get(type);
> return clazz.newInstance();
> }
>
>
> You'll still have to catch a bunch of exceptions that can be thrown by
> newInstance(), but that's all there is to it. If you can't hardcode
> the class names, use Class.forName(name) as the 2nd argument in the
> put() calls, where name is a String that was read from a properties
> file.

Thanks a lot Mitch!
iksrazal