2009-09-21 55 views
0

我在一個JavaScript庫上創建了一個GWT包裝器。其中一個JavaScript函數需要一個匿名對象作爲參數例如爲:如何在Java中將匿名JavaScript對象從Java傳遞到JavaScript?

obj.buildTabs({ hide: true, placeholder: 'placeholder' }); 

在Java方面如何創建這種類型的JavaScript對象,並把它傳遞給我的本機實現?

目前,在Java端我有:

public void buildTabs(TabConfiguration config) { 
    // ? 
} 

private native void buildTabs(?) /*-{ 
     $wnd.NAMESPACE.lib.buildTabs(?); 
}-*/; 

讚賞任何指針,謝謝。

回答

2

,如果你確切地知道應該用什麼參數,你可以做以下的(後除去額外的新線路:從GWT documentation :)

private native void buildTabs(TabConfiguration config) /*-{ 
     $wnd.NAMESPACE.lib.buildTabs({hide: 
       [email protected]:: 
       getHide()(), 
       placeholder: 
       [email protected]:: 
       getPlaceholder()()}); 
}-*/; 

小夾子:

public native void bar(JSNIExample x, String s) /*-{ 
    // Call instance method instanceFoo() on this 
    [email protected]::instanceFoo(Ljava/lang/String;)(s); 

    // Call instance method instanceFoo() on x 
    [email protected]::instanceFoo(Ljava/lang/String;)(s); 

    // Call static method staticFoo() 
    @com.google.gwt.examples.JSNIExample::staticFoo(Ljava/lang/String;)(s); 

    // Read instance field on this 
    var val = [email protected]::myInstanceField; 

    // Write instance field on x 
    [email protected]::myInstanceField = val + " and stuff"; 

    // Read static field (no qualifier) 
    @com.google.gwt.examples.JSNIExample::myStaticField = val + " and stuff"; 
    }-*/; 
相關問題