Почему мой @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_;
}-*/;
1 ответ
Изменить: я предполагаю, что вы говорите о GWT 2.8. Если другой, мой ответ не применяется.
Я думаю, что вам не хватает @JsType
аннотации к классу (не уверен в этом, но я думаю, что компилятор GWT может игнорировать типы, не аннотированные @JsType
даже если у вас есть @JsProperty
). Кроме того, если ваша проблема возникает ТОЛЬКО при компиляции в производственном режиме, учтите, что вам нужен специальный флаг компилятора - generateJsInteropExports
(по умолчанию НЕ учитываются аннотации JS Interop).