我对 GWT 实现 JRE 库仿真技术很感兴趣。
GWT 如何模拟 Java 库?
在 JavaScript 中如何有效地实现 HashMap?它是用纯 JavaScript 实现的,还是在代码中使用时编译为 Java 源代码?
我了解 gwt-dev 库中存在一些用于开发(托管)模式的实现。生产代码的实现是否相同?
我对 GWT 实现 JRE 库仿真技术很感兴趣。
GWT 如何模拟 Java 库?
在 JavaScript 中如何有效地实现 HashMap?它是用纯 JavaScript 实现的,还是在代码中使用时编译为 Java 源代码?
我了解 gwt-dev 库中存在一些用于开发(托管)模式的实现。生产代码的实现是否相同?
您可以在线浏览代码,例如HashMap,或者更有趣的是AbstractHashMap。如您所见,有一些 JSNI 方法(带有native
关键字和/*-{ ... }-*/
语法的方法)。但是仿真代码中的许多方法都建立在 JSNI 方法之上:它们被编写为“更高级别”的 Java 方法。
该仿真代码实际上只是您自己编写的 GWT 代码(当然,统计上 JSNI 代码的百分比更高)。它使用了这种<super-source>
机制:这样,同一个类的客户端代码在生产模式和开发模式下可以不同。