在不久的将来,我们可能会通过一个规则强制执行,我们的java源代码中不能包含任何硬编码数字.必须将所有硬编码数字声明为final变量.
尽管从理论上讲这听起来很棒,但在代码中实现它确实很困难/乏味,特别是遗留代码.在下面的代码片段中将数字声明为final变量,是否真的被视为"最佳实践" ?
//creating excel
cellnum = 0;
//Declaring variables.
Object[] result = new Object[2];
//adding dash to ssn
return ssn.substring(1, 3)+"-"+ssn.substring(3, 5)+"-"+ssn.substring(5, 9);
Run Code Online (Sandbox Code Playgroud)
以上只是我能想到的一些例子,但在这些(以及其他)中,作为开发人员,你会说够了吗?
我想把这个问题变成一个社区维基但是看不出怎样......?
绝对没有.字面常量有他们的地方,特别是低常量如0,1,2,...
我认为没有人会想到
double[] pair = new double[PAIR_COUNT];
Run Code Online (Sandbox Code Playgroud)
比...更有意义
double[] pair = new double[2];
Run Code Online (Sandbox Code Playgroud)
我会说使用最终变量if
相关的附注:与编码标准/惯例一样:严格遵守极少数(如果有)规则.