我正在使用石英进行schedulling。
TriggerUtils.getDateOf(0,40,18,09,06);
它接受5个参数。 (秒,分钟,小时,天,月,月)。
当我将第四个参数传递为“09”时。 Eclipse给我错误“int类型的文字八进制09(数字9)超出范围”。
但是当我将第四个参数传递为“9”而不是“09”时,它可以正常工作。
有人能解释我这个错误吗?
答案 0 :(得分:33)
在java中,如果要定义一个整数,前导'0'将表示您在八进制中定义一个数字
int i = 07; //integer defined as octal
int i = 7; // integer defined as base 10
int i = 0x07; // integer defined as hex
int i = 0b0111; // integer defined as binary (Java 7+)
答案 1 :(得分:20)
Octal中没有9(你前面的0得到了什么)。 0-7,仅限。
答案 2 :(得分:13)
如果您在数字前加0(“09”而不是“9”),则Java(和C和许多其他语言)将数字解释为八进制 - base-8。
“09”不是八进制中的有效数字 - 任何单个数字最多可以是“7”(因为在八进制中,数字从0..7开始)。
答案 3 :(得分:11)
以零数字开头的数字被视为八进制(基数为8)的文字,而9不是有效的八进制数字。
答案 4 :(得分:3)
10 是您拥有的数字,而 010 是您不计算拇指的数字。