如果我们有一个私有 final 实例变量要传递给私有方法,我们是否在作为参数传递时在函数中使用 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。优势。防止重复的最终修饰符缺点:不提供明确的图片,例如:如果 GraphAlgo 是 10000 行代码,那么只需查看函数“runAlgoUsingSource”,他将无法通过视觉访问了解“源”是否为最终的。
在这种情况下,一般约定是什么?