我正在为Mapbox-gl-js的源对象构建一个 Jsinteropted 包装器。
我有一个抽象类Source
,它嵌入了默认方法,例如获取/设置源的类型。
@JsType(isNative = true, namespace = GLOBAL, name = JS_OBJECT_NAME)
public class Source {
@JsProperty
protected final native String getType();
@JsProperty
protected final native void setType(String type);
}
而且我有一些必须(根据 Mapbbox 文档)定义type
属性的继承类!所以我想做类似的事情:
@JsType(isNative = true, namespace = GLOBAL, name = JS_OBJECT_NAME)
public class GeoJsonSource extends Source {
@JsConstructor
public GeoJson() {
setType("geojson");
}
}
或者
@JsType(isNative = true, namespace = GLOBAL, name = JS_OBJECT_NAME)
public class GeoJsonSource extends Source {
@JsProperty
private String type = "geojson";
}
但两者都被 GWT 编译器禁止。
现在我使用一个创建 GeoJsonSource 然后放置正确type
属性的工厂,但我想知道是否有 Jsinteropt 方法可以做到这一点?