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.

Reply via email to