Thursday, December 30, 2010

Re: can I use Class.forName and newInstance in GWT ?

No, you cannot.

Dynamically instantiating classes would invalidate some of the goals
of the GWT compiler.
The GWT compiler builds a javascript application that only contains
code for the actual call graph of your application.
If you would be able to instantiante classes from arbitray Strings, it
cannot determine the call graph anymore.

This is not really a limitation. You can overcome this by using
factories that create instances of a particular class given its name
using a simple string comparison
and GWT.create(). Of course, you need to know all at development time
all the possible classes that you might need to instantiate. If later
you want to add support
for another class, you need to change the code and rebuild. But in
that situation, you probably need to add additional logic to your app
Unless of course your app is completely dynamic, but in that case you
should ask yourself the question if GWT is the technology to use.



On 30 dec, 09:11, Didier Durand <> wrote:
> Hi,
> You can't: if you go to
> for Class, you will see that forName() is not emulated by GWT.
> regards
> didier
> On Dec 30, 7:33 am, metalhammer29a <> wrote:
> > can I use Class.forName and newInstance in GWT ?
> >    static Employee create (String name) {
> >        try {
> >            return (Employee) Class.forName(name).newInstance();
> >        } catch (Exception e) {
> >            throw new IllegalArgumentException ("Unable to instantiate"
> > + name);
> >        }
> >    }

You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

No comments:

Post a Comment