1

我有以下课程:

@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_;
}-*/;
4

1 回答 1

2

编辑:我假设你在谈论 GWT 2.8。如果其他,我的回答不适用。

我认为您在@JsType类上缺少注释(对此不确定,但我认为 GWT 编译器可能会忽略未使用 注释的类型@JsType,即使您确实有@JsProperty)。此外,如果您的问题仅在生产模式下编译,请注意您需要一个特殊的编译器标志 - generateJsInteropExports(默认不支持 JS 互操作注释)。

于 2017-05-09T11:23:51.057 回答