gpt4 book ai didi

java - 为什么 PMD 建议将字段设为最终字段?

转载 作者:行者123 更新时间:2023-12-01 14:47:33 24 4
gpt4 key购买 nike

我创建了 Android 应用程序并在其上运行静态分析工具 PMD。我不明白的是为什么它会向我发出警告,并要求尽可能将字段声明为 Final,就像本例中那样。

final City selectedItem = (City) arg0.getItemAtPosition(arg2);
new RequestSender(aaa).execute(xxx, selectedItem.getId());

它只是启动内部 AsyncTask 实例。宣布最终结果是一种好的风格吗?为什么?为了可读性,我创建了一个新对象,但 PMD 说它应该是最终的。

最佳答案

这里有两个不同的东西(你正在谈论静态和最终)。

关于final ,如果您创建一个不会更改的引用(对象本身可以修改),则最好将其声明为 Final,原因有两个:

  • 它可以帮助编译器进行小的性能优化
  • 它可以帮助您(或您的开发人员同事)了解此引用不会更改 - 它发出了一个信号。

关于static (对于变量,关键字对于不同类型的结构具有不同的含义),它将使您的 cityItems 对于其封闭类的所有对象都是唯一的。如果所有对象都可以使用相同的值,那么复制它就没有任何好处。再次强调,不仅要考虑编译器/性能方面,还要考虑信号:如果我看到一个带有“static”的字段,我知道它在所有对象之间共享 - 我不需要额外的信息或文档。

在您的示例中,该字段可能应该是公共(public)静态(如果是共享的)或私有(private)(公共(public)或“package protected ”字段正在破坏封装)。

关于java - 为什么 PMD 建议将字段设为最终字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15266133/

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