gpt4 book ai didi

gwt - 我在每次 GWT 编译时都会得到新的 javascript,而无需更改 java 源代码

转载 作者:行者123 更新时间:2023-12-02 02:37:25 25 4
gpt4 key购买 nike

GWT 将 Java 源代码编译成 Javascript,并根据文件内容的哈希值命名文件。每次编译我都会得到一组新文件,因为 javascript 内容在变化,即使我根本没有更改源代码也是如此。

OBF 和 PRETTY 输出的文件不同,但如果我将其设置为 DETAILED,则每次编译它们都不再不同。在 PRETTY 中,我可以看到编译之间的所有/大部分差异都在 typeId 的值参数中。例如,调用一个名为 initValues() 的函数时,它的 typeId 参数使用不同的值。

最佳答案

在 PRETTY 模式下,您看到的不同之处在于将 Java 类分配给 TypeId。这就是 GWT 管理运行时类型检查的方式。您会注意到每个脚本底部的表格基本上将每个 typeId 映射到所有兼容的父类(super class)。这就是 GWT 仍然可以在 JavaScript 中抛出 ClassCastException 的原因(尽管您应该很少遇到这种情况!)。

在 OBF 模式下,差异是由于分配了缩小的函数名称。

在这两种情况下,都是由编译器处理代码的顺序决定的。某些内部符号表可能正在使用无序集合存储符号进行处理。发生这种情况的原因有很多。

关于gwt - 我在每次 GWT 编译时都会得到新的 javascript,而无需更改 java 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/848619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com