在 GWT 代码中引用 Javascript 常量

发布于 2024-12-22 11:19:04 字数 388 浏览 1 评论 0原文

有没有办法使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝眸 2024-12-29 11:19:04

外部脚本加载到 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.

独行侠 2024-12-29 11:19:04

我唯一让它起作用的是将字符串常量包装在纯 JavaScript 对象中并将其映射为哑覆盖类型。然后,GWT java-to-js 编译器能够将其转换为我的强类型 MapTypeId。

public static native MapTypeId getHybrid() /*-{
        return { value : $wnd.google.maps.MapTypeId.HYBRID };
    }-*/;

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.

public static native MapTypeId getHybrid() /*-{
        return { value : $wnd.google.maps.MapTypeId.HYBRID };
    }-*/;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文