为什么我的@JsProperty 没有保留 javascript 中的名称?
Why is my @JsProperty not preserving the name in javascript?
我有以下 class:
@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_;
}-*/;
编辑:我假设您在谈论 GWT 2.8。如果是其他,我的回答不适用。
我认为您在 class 上缺少 @JsType
注释(对此不确定,但我认为 GWT 编译器可能会忽略未使用 @JsType
注释的类型,即使你有 @JsProperty
)。
此外,如果您的问题仅在生产模式下编译时出现,请注意您需要一个特殊的编译器标志 - generateJsInteropExports
(默认情况下不支持 JS Interop 注释)。
我有以下 class:
@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_;
}-*/;
编辑:我假设您在谈论 GWT 2.8。如果是其他,我的回答不适用。
我认为您在 class 上缺少 @JsType
注释(对此不确定,但我认为 GWT 编译器可能会忽略未使用 @JsType
注释的类型,即使你有 @JsProperty
)。
此外,如果您的问题仅在生产模式下编译时出现,请注意您需要一个特殊的编译器标志 - generateJsInteropExports
(默认情况下不支持 JS Interop 注释)。