On Wednesday, December 4, 2024 at 5:10:32 PM UTC+1 Colin Alworth wrote:
Note that "@FunctionalInterface" is not required to express a Java
interface with only one abstract method as a lambda. You can write:
DomGlobal.window.onpopstate = event -> {
// Do something
return null;
};
to use it as a lambda. This compiles for me with GWT 2.12.1 and Java 11.
Does it show that I haven't written that kind of code for quite some
time? 😂
(and/or rely too much on my IDE)
The key is the "return null", missing in your example (and in Thomas's as
well as a return type for the anon inner class).
The return type is declared as Object, which may be an oversight in the
original closure externs file, I don't see a way that an event handler can
change anything by returning a different value. In JS, a missing return
would implicitly return undefined, but Java requires an explicit return for
non-void methods.
An event handler's return type is used to cancel the event
(https://blog.ltgt.net/html-event-handlers/#return-value /
https://html.spec.whatwg.org/multipage/webappapis.html#the-event-handler-processing-algorithm),
but for that specific event it doesn't matter as it's not cancelable anyway
(https://html.spec.whatwg.org/multipage/browsing-the-web.html#updating-the-document:popstateevent)
--
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 [email protected].
To view this discussion visit
https://groups.google.com/d/msgid/google-web-toolkit/dfc672c9-0f91-4f15-9de2-408b3f2cecf5n%40googlegroups.com.