2016-12-02 40 views
0

。到2.8穩定版本,我已經開始在編譯期間出現這個錯誤。 MyClassJSO只是簡單的JSO類(擴展了JavaScriptObject),所以我真的不知道問題出在哪裏。GWT [錯誤]從GWT 2.6升級後,重新綁定結果'com.viktor.MyClassJSO'不能是JSO

有誰知道這個錯誤究竟意味着什麼?

我已經設法將日誌級別更改爲更詳細的日誌級別,但沒有進一步的信息出現。

感謝您的所有答案。

+0

此錯誤的情況下可以觸發你在Java中使用'new'創建JSO。顯然在GWT 2.6中有一個bug使得這個可能,但是從2.7開始,在這種情況下引發了上述錯誤。 –

+0

您應該閱讀[JsInterop](https://docs.google.com/document/d/10fmlEYIHcyead_4R1S5wKGs1t2I7Fnp_PaNaa7XTEk0/)。在GWT 2.8中,它是與JavaScript交互的首選方式。 – Adam

+0

我正在使用GWT.create。 調用失敗: 'someMethodCall((MyClassJSO)GWT.create(MyClassJSO.class));' – NullpointerExceptionBuster

回答

2

您不能用GWT.create(...)創建JSO(也不能生成JSO類型)。唯一的方法是在JSNI中創建實例。

根據它是什麼類型的對象,可以使用JavaScriptObject.createObject(),或者需要一個靜態工廠方法來管理JavaScript中對象的創建。

MyClassJSO jso = (MyClassJSO) JavaScriptObject.createObject(); 

MyClassJSO jso = JavaScriptObject.createObject().cast(); 

MyClassJSO jso = MyClassJSO.createInstance(); 

public static native MyClassJSO createInstance() /*-{ 
    return new MyObjectFromJavaScript;//or whatever you need to do 
    //in JS to create the object 
}-*/;