gpt4 book ai didi

java - 在 GWT 中将最终类变量设为静态

转载 作者:行者123 更新时间:2023-11-30 06:31:27 24 4
gpt4 key购买 nike

在 Java 中,当 final 字段在编译时被分配一个常量值时,将其声明为 static 通常是有意义的。它根据相关的 PMD 规则节省了开销。

对于生成的 Javascript 代码,在 GWT 中执行此操作是否有意义或不同?

最佳答案

如果变量在声明为 final 时被赋值,那么是的,静态有一定的意义,但有些情况下它不应该是静态的:

public MyClassWithFinal {
private final String finalVar;
public MyClassWithFinal(String name) {
this.finalVar = name;
}
}

另一种情况:如果实例 var 不是字符串或数字常量,而是需要运行一个构造函数,那么该构造函数可能在每次调用时都有副作用,因此只运行一次与运行多次是不同的。

也就是说,GWT 将内联/驻留常量字符串值,因此如果您有多个字符串字段都分配了相同的值,GWT 可能会检测到并将它们全部提升为静态。

public final String constant = "Some Constant that really ought to be static";

GWT 会注意到,除非声明,否则永远不会分配 this,甚至可能会删除该字段本身。

最好的规则是从最好的(即最易读、最可维护、最高效)Java 代码开始,并且仅在 GWT 需要特定内容的情况下才中断。这不是其中一种情况:无论您如何编写,编译器都应该执行相同的基本优化。

关于java - 在 GWT 中将最终类变量设为静态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9686062/

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