有没有办法使用JSNI和JSOT(javascript叠加类型)将JavaScript常量映射到自定义java类型?
示例:
我将Google Map V3 javascript API映射到GWT,并且有MapTypeId个常量。我想在我的javacode中引用TERRAIN常量(这是一个javascript字符串)作为MapTypeId对象(它是一个POJO而不是java.lang.String)。到目前为止,编译器说它无法将javascript字符串映射到我的自定义类型。
答案 0 :(得分:0)
外部脚本在HTML主页中加载,您将在JSNI中将其引用为$wnd
。我不知道Maps API,但我想$wnd.MapTypeId
应该可以使用。
答案 1 :(得分:0)
我唯一能让它工作的是将字符串常量包装在纯javascript对象中,并将其映射为哑叠加类型。然后,GWT java-to-js编译器可以将其强制转换为强类型MapTypeId。
public static native MapTypeId getHybrid() /*-{
return { value : $wnd.google.maps.MapTypeId.HYBRID };
}-*/;