您对方法范围的常量有什么看法?

2022-09-01 12:32:10

例如:

public void doSomething() {

    final double MIN_INTEREST = 0.0;

    // ...  
}

就个人而言,我宁愿看到这些替换常量在类级别静态声明。我想我正在寻找关于此事的“行业观点”。


答案 1

我认为,如果它们被多种方法使用,则只应将它们放在类级别。如果它只用于该方法,那么对我来说看起来很好。


答案 2

我的出发立场是,每个变量或常量都应该尽可能接近其首次使用/实际进行声明/初始化(即不要将逻辑代码块分成两半,只是为了声明几行更近),并且范围尽可能紧密。--除非你能给我一个很好的理由,为什么它应该有所不同。

例如,方法范围的最终版本在公共 API 中不可见。有时,这部分信息可能对类的用户非常有用,应该向上移动。

在问题中给出的示例中,我想说这可能是用户想要获取的信息之一,它应该限定为类,而不是方法。(虽然,示例代码没有上下文,我的假设可能是完全错误的。MIN_INTEREST


推荐