2010-07-28 13 views

risposta

21

Sì, lo fa:

private static native void doThingWithCallback() /*-{ 
    var self = this; 
    var callbackFn = $entry(function(val) { 
    [email protected]Class.aMethod(Ljava/lang/String;)(val); 
    }); 
    $wnd.someApiThatTakesACallback(callbackFn); 
}-*/; 

Due cose da ricordare:

  1. $entry() ricorda GWT per tenere traccia del codice quando si utilizza il debugger.
  2. var self = this mantiene il riferimento al this all'interno della funzione - altrimenti this sarà la funzione stessa ...
+4

Si suppone di avere :: prima del nome del metodo:. @ Auto com.your.package. AClass :: aMethod (Ljava/lang/String;) (val); – AmanicA

+0

è un metodo javascript o un metodo java? javascript non ha 'private static' e java non ha 'var'. –

+1

@ClickUpvote è un metodo nativo GWT, che ti permette di scrivere JS nativo nel tuo codice Java GWT. –