在Java Code Conventions的第 10.3 节中,它指出:
数字常量(文字)不应直接编码,但 -1、0 和 1 除外,它们可以作为计数器值出现在 for 循环中。
“直接编码”数字常量是什么意思?
在Java Code Conventions的第 10.3 节中,它指出:
数字常量(文字)不应直接编码,但 -1、0 和 1 除外,它们可以作为计数器值出现在 for 循环中。
“直接编码”数字常量是什么意思?
它指的是所谓的“幻数”。观察以下代码:
float radians = 180/3.141;
相对
float degreesInRadians = myDegrees/Math.PI;
哪个更清楚?
这意味着当您在代码中使用数字(-1、0 和 1 除外)时,您使用常量来“标记”它。
即代替:
boolean pass = score >= 50;
用这个:
private static final int MINIMUM_PASS_SCORE = 50;
boolean pass = score >= MINIMUM_PASS_SCORE;
我相信这意味着在不定义它们实际上是什么的情况下使用它们。例如,而不是说明:
public static double PI = 3.14; //<-- Clearly defines the meaning of this value.
你只是使用十进制值。
double a = Math.pow(3.14 * r, 2); // <-- Does not define the meaning of 3.14
这使代码更难阅读,因此是一种避免的做法。