gpt4 book ai didi

java - 我必须使大部分变量成为最终变量有意义吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:02:43 25 4
gpt4 key购买 nike

在我使用 IntelliJ 检查我的代码后,发出了数百个“声明可以有最终修饰符”警告。为了解决这些警告,我基本上需要将我的大部分变量变成final,下面是一个典型的例子。这让我想到我应该默认将成员变量设置为“final”。在大多数情况下,成员,尤其是容器类(即 List 或 Set),一旦分配就不会改变。它们通过插入或移除元素在内部发生变化,但对它们的引用不会改变。

public class Attribute {

private final Insight insight;

private final Attribute attribute;

private final List<String> names;

public Attribute(Insight insight, Attribute attribute) {
attribute = attribute;
insight = insight;
names = new ArrayList<>();
}
}

在设计类中将大多数变量默认设置为 final 有意义吗?是不是大多数成员变量都可以在Java中定义为'final'?

最佳答案

如果今天要重新设计 Java,变量可能应该默认为 private 和 final,而不是 package 和 mutable。

可变变量有时是必需的,但只要有可能,您应该更喜欢 final,而且我真的想不出有多少合理的理由可以将变量设为私有(private)。

对于不同的目标环境,情况可能会有所不同,但 Java 旨在提供良好的可读/可维护的长生命周期代码,考虑到这一点,他们只是在默认设置上做出了一些糟糕的决定。

但这是一种古老的语言,我们不像现在这样了解。生活和学习。

ps:如果我是负责人,我也会抛出已检查的异常……我不是负责人可能是件好事。

关于java - 我必须使大部分变量成为最终变量有意义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46596271/

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