checkstyle可以利用FinalParameters检查方法、构造器、catch和for-each块的参数是final的:
https://checkstyle.sourceforge.io/checks/misc/finalparameters.html
背后的原理:程序执行期间修改参数的值会引起混乱,所以应该避免。
要配置使该功能生效,在checkstyle规则集文件中应该包含FinalParameters这个模块:
默认是检查构造器、方法的参数:
按照这个规则,代码中的参数到处都要加上final,感觉挺杂乱的。我查了java sdk的源代码,也没有把参数都加上final,只有少数地方加上。
如果不想这个检查功能生效,可以在规则集文件中把FinalParameters模块注释掉: