Tuesday, July 26, 2016

using Generics in GWT JsInterop: Uncaught java.lang.ClassCastException

I have an interface annotated with @JsFunction that I use as a callback for events. As there are different types of events, I have added a type parameter:

@JsFunction  public interface Function<T extends Event>{      public JavaScriptObject call(T event);    }

From the entry point I do something like :

//...    map.on("click", new Function<MouseEvent>(){          @Override          public JavaScriptObject call(MouseEvent event) {        });

When I run the project, everything compiles and run fine. But when the code above is executed, I get the following exception in the console:

Uncaught java.lang.ClassCastException                                        InternalPreconditions.java:45

This seems like a GWT internal error. Is this a known bug in GWT 2.8 ? Are generics not allowed with JsInterop types?

You received this message because you are subscribed to the Google Groups "GWT Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment