2

Java Code Conventions的第 10.3 节中,它指出:

数字常量(文字)不应直接编码,但 -1、0 和 1 除外,它们可以作为计数器值出现在 for 循环中。

“直接编码”数字常量是什么意思?

4

3 回答 3

9

它指的是所谓的“幻数”。观察以下代码:

float radians = 180/3.141;

相对

float degreesInRadians = myDegrees/Math.PI;

哪个更清楚?

于 2013-08-28T08:03:19.570 回答
3

这意味着当您在代码中使用数字(-1、0 和 1 除外)时,您使用常量来“标记”它。

即代替:

boolean pass = score >= 50;

用这个:

private static final int MINIMUM_PASS_SCORE = 50;

boolean pass = score >= MINIMUM_PASS_SCORE;
于 2013-08-28T09:05:16.243 回答
1

我相信这意味着在不定义它们实际上是什么的情况下使用它们。例如,而不是说明:

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

这使代码更难阅读,因此是一种避免的做法。

于 2013-08-28T08:02:52.267 回答