java - 重复的最终声明,应该避免吗?

标签 java final

如果我们有一个私有(private)final实例变量要传递给私有(private)方法,当作为参数传递时,我们是否在函数中使用final修饰符重新声明它?例如:

public class GraphAlgo {

  private final source;

  public GraphAlgo(source) {
     this.source = source
  }

  public void runAlgo() {
     runAlgoUsingSource(source);
  } 

  private runAlgoUsingSource(final source) {  // here final is declared on a final field
    //-- whatever.
  } 
}

不要为已经是final的参数声明final。 优势。防止重复的 Final 修饰符 缺点:不提供明确的图片,例如:如果 GraphAlgo 是 10000 行代码,那么只需查看函数“runAlgoUsingSource”,他将无法直观地了解“source”是否是最终的。

这种情况下的一般约定是什么?

最佳答案

这里,source已经是一个实例变量。为什么将其传递给方法?就此而言,在这里,

private runAlgoUsingSource(final source) {

source 现在是另一个变量,作用域为局部变量,且命名与实例变量相同。 (它还需要一个类型。)此本地 source 是否为 final 并不取决于 this.source (实例变量)是否为 最终

关于java - 重复的最终声明,应该避免吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18220610/

相关文章:

scala - Scala 构造函数上的“发生在”之前 : final fields

java - 你能用 C# 编写最终函数吗?

java - 最终作为参数传递

java - 使用记录类型解析 xml

java - 使用 Guava Joiner 连接数组并包装每个元素

Java Map<String,Object> 转换为 Map<String,String> 在运行时不会抛出错误

c# - 为什么 String 类是最终的?

java - 当用户单击 clickme 按钮时需要显示图像

java - Ubuntu:数据节点无法启动

java - 为什么所有匿名类都是隐式最终的?