NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Google 引入 GWT Overlay 类型

  • 2008-08-04
  • 本文字数:1097 字

    阅读完需:约 4 分钟

Google Web Toolkit 小组 GWT overlay 类型发表了一篇文章,将其作为正在进行的名为“Getting to really know GWT(真正了解 GWT)”系列文章的一部分。

GWT 1.5 引入了JavaScript overlay 类型以简化将整个 JavaScript 对象家族集成到 GWT 项目的过程。该技术有很多优势,如利用 Java IDE 的代码完成和重构能力,甚至当你在编写无类型的 JavaScript 对象时也可以充分利用这一优势。

这篇文章展示了如何为 JSON 数据创建 Java bean 风格的包装器:

<pre id="apur">var jsonData = [<br id="utax"></br> { "FirstName" : "Jimmy", "LastName" : "Webber" },<br id="utax0"></br> { "FirstName" : "Alan", "LastName" : "Dayal" },<br id="utax1"></br> { "FirstName" : "Keanu", "LastName" : "Spoon" },<br id="utax2"></br> { "FirstName" : "Emily", "LastName" : "Rudnick" }<br id="utax3"></br>];<br id="utax4"></br>相应的 GWT Java 对象可以将 JSNI 方法调用与常规的 Java 方法结合起来,使用内置功能来产生类型安全的 Java 对象:

<pre id="aj3q1">class Customer extends JavaScriptObject {<p> // Overlay types always have protected, zero-arg ctors</p><br id="aj3q4"></br> protected Customer() { } <p> // Typically, methods on overlay types are JSNI</p><br id="aj3q7"></br> public final native String getFirstName() /*-{ return this.FirstName; }-*/;<br id="aj3q8"></br> public final native String getLastName() /*-{ return this.LastName; }-*/;<p> // Note, though, that methods aren't required to be JSNI</p><br id="aj3q11"></br> public final String getFullName() {<br id="aj3q12"></br> return getFirstName() + " " + getLastName(); <br id="aj3q13"></br> }<br id="aj3q14"></br>}<p>class JsArray<E extends JavaScriptObject> extends JavaScriptObject {</p><br id="nzdn1"></br> protected JsArray() { }<br id="nzdn2"></br> public final native int length() /*-{ return this.length; }-*/;<br id="nzdn3"></br> public final native E get(int i) /*-{ return this[i]; }-*/;<br id="nzdn4"></br>}剩下的步骤就是将 Javascript 对象转化为 Java 对象,这是通过变量推断(variable inference)和另一个 JSNI 调用完成的:

<pre id="zsou0">private final native JsArray<Customer> getCustomers() /*-{<br id="zsou1"></br> return $wnd.jsonData;<br id="zsou2"></br>}-*/;请查看原始文章以进一步了解overlay 功能以及GWT 编译器对其所做的优化。

查看英文原文: Google Introduces GWT Overlay Types

2008-08-04 01:43369
用户头像

发布了 88 篇内容, 共 258.6 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

Spring Cloud Stream 体系及原理介绍

阿里巴巴云原生

Java 负载均衡 微服务 云原生 中间件

最新、最全、最详细的 Git 学习笔记总结(2021最新版)

民工哥

后端 Git Submodule linux运维 代码管理

生命中的无奈

小天同学

读书 读后感 生命 4月日更

云原生新边界——阿里云边缘计算云原生落地实践

阿里巴巴云原生

云计算 容器 运维 云原生 边缘计算

如何通过openLooKeng更高效访问HBase?

openLooKeng

Java 大数据 Bigdata MySQL 高可用

百度智能云成中国跳水队独家AI合作伙伴圆梦东京!

百度大脑

百度智能云

C盘内存杀手,原来是这款出人意料的被闲置的软件|iTunes

彭宏豪95

效率 工具 4月日更 iTunes

UT之最后一测

好好学习,天天向上

浪潮云再次入围央采2021年云计算服务采购名单

浪潮云

云计算

Jcenter 停止服务,说一说我们的迁移方案

Antway

android maven Gradle

容器 & 服务: 扩容(二)

程序员架构进阶

Kubernetes 28天写作 弹性扩容 4月日更

2021高校IT专业大学生就业意向调查问卷

黑马腾云

LeetCode题解:151. 翻转字符串里的单词,栈,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

音视频编解码--编码参数CRF

Fenngton

ffmpeg 视频编解码 视频压缩 码率控制 CRF

What CANN Can?一辆小车背后的智能故事

脑极体

云信技术系列课 | RTC 系统音频弱网对抗技术发展与实践

网易云信

WebRTC 音频

智能小车系列-动力系统(ezPWM)

波叽波叽啵😮一口盐汽水喷死你

pwm ezPWM PWM信号

特斯拉行车数据被篡改?专家称车企很难自证清白,保留“数据指纹”的区块链技术在路上

CECBC

指纹

获取chrome80谷歌浏览器存储的指定网站Cookie数据方法详解

老猿Python

Python chrome 爬虫 Cookie

边开飞机边换引擎?我们造了个新功能保障业务流量无损迁移

阿里巴巴云原生

容器 运维 k8s 中间件 弹性计算

资讯|WebRTC M90 更新

网易云信

WebRTC

赋能制造产业智能化转型 百度大脑开放日福州解密

百度大脑

百度大脑 开放日 智能化

智能小车系列-串口设置

波叽波叽啵😮一口盐汽水喷死你

串口 树莓派串口 ttyAMA0

排查dubbo接口重复注销问题,我发现了一个巧妙的设计

捉虫大师

dubbo

IT 专业高校大学生就业方向状况调查问卷

架构精进之路

调查报告 4月日更 InfoQ 写作平台 1 周年

微信小程序登录流程详解

frank-say

面向软件 IT 专业的高校大学生课余时间自学情况调查

xiezhr

大学生日常 IT 高校学院 问卷调查

【XXX高校】软件IT专业学生(恋爱观)调查问卷

洛神灬殇

调查报告 大学生 恋爱

软件 IT 专业的高校学生有关在线课程的问卷调查

程序员历小冰

如何从 0 到 1 开发 PyFlink API 作业

Apache Flink

flink pyflink python 3.5+

Linux 上 定时备份postgresql 数据库

Yang

数据库 postgresql

Google引入GWT Overlay类型_Java_R.J. Lorimer_InfoQ精选文章