例如:
public void doSomething() { final double MIN_INTEREST = 0.0; // ... }
就个人而言,我宁愿看到这些替换常量在类级别静态声明.我想我正在寻找关于这个问题的"行业观点".
我认为如果它们被多种方法使用,你应该只将它们放在类级别.如果它只用于那种方法,那对我来说就好了.
我的起始位置是每个变量或常量应该被声明/初始化为尽可能接近它的第一次使用/实际(即不要将代码的逻辑块分成两半,只是为了声明几行),并且作为范围尽可能紧密. - 除非你能给我一个很好的理由,为什么它应该是不同的.
例如,在公共API中不会显示方法作用域final.有时这些信息可能会对您的班级用户有用,并且应该向上移动.
在你在问题中给出的例子中,我会说MIN_INTEREST可能是用户想要得到的那些信息之一,它应该是范围的,而不是方法.(虽然示例代码没有上下文,但我的假设可能完全错误.)
从技术上讲,Java中没有"方法作用域常量"这样的东西.你所指的只是一个最终的局部变量; 它是使用每个方法调用创建的.
http://www.java-tips.org/java-se-tips/java.lang/how-do-i-declare-a-constant-in-java.html