在 GWT 代码中引用 Javascript 常量
有没有办法使用 JSNI 和 JSOT(javascript 覆盖类型)将 JavaScript 常量映射到自定义 java 类型?
示例:
我将 Google Map V3 javascript API 映射到 GWT,并且有 MapTypeId 常量。我想在我的java代码中引用TERRAIN常量(这是一个javascript字符串)作为MapTypeId对象(这是一个POJO而不是java.lang.String)。到目前为止,编译器表示无法将 javascript 字符串映射到我的自定义类型。
Is there a way using JSNI and JSOT (javascript overlay types) to map a JavaScript constants to a custom java-type?
Example:
I map the Google Map V3 javascript API to GWT and there is the MapTypeId constants. I'd like to refer in my javacode to the TERRAIN constant (which is a javascript string) as a MapTypeId object (which is a POJO and not a java.lang.String). So far, the compiler says it could not map the javascript string to my custom type.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
外部脚本加载到 HTML 主机页面中,您将在 JSNI 中将其引用为
$wnd
。我不知道 Maps API,但我想$wnd.MapTypeId
应该可以工作。External scripts are loaded in the HTML host page, which you'll reference in JSNI as
$wnd
. I don't know the Maps API, but I guess$wnd.MapTypeId
should work.我唯一让它起作用的是将字符串常量包装在纯 JavaScript 对象中并将其映射为哑覆盖类型。然后,GWT java-to-js 编译器能够将其转换为我的强类型 MapTypeId。
The only I made it work is to wrap the string constants in a pure javascript object and map it as a dumb overlay-types. The GWT java-to-js compiler then is able to cast that as my strongly-typed MapTypeId.