将实例变量作为最终变量有什么意义?
那么将该变量设置为静态最终变量会更好吗?
原因是如果任何对象都不能更改它,那么它与类(静态)变量相同,对吗?
不。 static表示该类的所有实例都相同。 final表示在初始分配后无法分配。因此,两个实例的非静态最终变量的值可能不同。
static
final
您可能有很多原因想使变量为final;最好的方法之一就是清晰度。如果我读了一个方法并且注意到foo是最终的,那么我不必担心它在下面的位置变化了- 因为它不是。不能。我可以对代码进行更多更改,而不必担心最终变量(“我在bar之前还是之后更改了foo的值,这有关系吗?”),因为我知道某些变量不会更改。它还侧重于这两个变量我的注意力 都 可能发生变化-他们是值得更多的关注的人。