我正在看我的崩溃报告,它说下面的报告
java.lang.IllegalArgumentException异常 在java.util.Random.nextInt
中我不明白这一点,nextint只返回一个最大随机数的int,而java编译器不允许你输入不同的类型。
这个例外怎么可能会消失?????
答案 0 :(得分:0)
只有当给定的值为非正数时,Nextint才会抛出IllegalArgumentException。
答案 1 :(得分:0)
如果有疑问,您可以随时使用JDK。在这种情况下,您可以查找Random.nextInt here。查看源代码,当且仅当给定的整数不是正数时,才会抛出IllegalArgumentException
。
为了完整起见,相关代码为:
public int nextInt(int n) {
if (n <= 0)
throw new IllegalArgumentException("n must be positive");
if ((n & -n) == n) // i.e., n is a power of 2
return (int)((n * (long)next(31)) >> 31);
int bits, val;
do {
bits = next(31);
val = bits % n;
while (bits - val + (n-1) < 0);
return val;
}}
编辑:OP在评论中提出了一个问题,
你能解释一下“grep the JDK”吗?
这里我的意思是在grepcode.com上搜索“Random.nextInt”。