2017-05-09 28 views
1

我有下面的類:爲什麼我的@JsProperty不在JavaScript中保留名稱?

@JsType 
public class Options { 

    @JsProperty 
    public boolean extractUrlsWithoutProtocol; 

    public Options(boolean extractUrlsWithoutProtocol) { 
     this.extractUrlsWithoutProtocol = extractUrlsWithoutProtocol; 
    } 
} 

現在我將它傳遞到JavaScript方法,當我使用的開發工具來檢查我得到的屬性名稱是extractUrlsWithoutProtocol_0_g$

如果刪除@JsProperty更重要的是註釋我沒有得到任何改變生成的代碼...

更新: 什麼工作是

public native void setExtractUrlsWithoutProtocol(boolean extractUrlsWIthoutProtocol_) 
/*-{ 
    this.extractUrlsWithoutProtocol = extractUrlsWIthoutProtocol_; 
}-*/; 

回答

2

編輯:我假設你在談論GWT 2.8。如果其他,我的答案不適用。

我認爲你缺少的一類註釋@JsType(不知道這一點,但我覺得GWT編譯器可能會被忽略不@JsType註解的類型,即使你有@JsProperty)。 此外,如果您的問題僅限於在生產模式下進行編譯,請注意您需要一個特殊的編譯器標誌 - generateJsInteropExports(默認不符合JS Interop標註)。

+0

添加@JsType並確保-generateJsInteropExports打開沒有區別 –

+0

將@JsType添加到我的原始問題 –

+0

您的Options類如何?你可以在你的輸出JS中用簡單的文本搜索找到這個名字嗎?我問,因爲編譯器丟棄不符合某些限制的東西(並在輸出中查找[WARN]語句)。 本文檔描述了這些限制: https://docs.google.com/document/d/10fmlEYIHcyead_4R1S5wKGs1t2I7Fnp_PaNaa7XTEk0/edit – Andrei

相關問題