为什么有些程序员喜欢在方法参数中添加final关键字?

时间:2015-08-31 02:42:25

标签: java methods final

最近,我发现在某些项目中,他们真的想在方法参数中添加final关键字,如:

try:
    import cPickle as pickle  # Improve speed
except ValueError:
    import pickle

file_temp = open('temp', 'w')
pickle.dump(scenes, file_temp)
file_temp.close()

3 个答案:

答案 0 :(得分:3)

它可以帮助你捕捉错误。

例如,如果你写:

public HttpResult(final int statusCode) {
    statusCode = statusCode;
}

您将收到编译错误,因为您正在为本地最终变量分配值,而如果您编写

public HttpResult(int statusCode) {
    statusCode = statusCode;
}

您不会收到编译错误,但不会分配statusCode成员。

答案 1 :(得分:0)

如果您不想以任何方式更改变量,即使没有必要,也只是一种更清洁的风格。

答案 2 :(得分:0)

Java支持Pass by value。所以它将始终保留该变量的副本。 因此,最终的关键词将没有用,并且在调用该方法的代码中没有任何意义。

但是在传递该参数的方法中,final关键字将非常有用。如果最终没有人可以重新分配这个价值。