快速提问。
为什么nextDouble可以接受
1 + ( 900 - 1) * random.nextDouble()
但是当我尝试将其设置为
时random.nextDouble((900 - 1) + 1) + 1);
它告诉我nextDouble不适用于int
类型当然第一个是int并接受了吗?
对不起,如果这是一个愚蠢的问题。
答案 0 :(得分:7)
Random
class's nextDouble
method不接受任何参数,因此第二次调用不会编译。
答案 1 :(得分:0)
因为Java Random没有公开nextDouble()
的重载版本,它接受像nextInt(int n)
这样的上限为整数做的。
我会推荐Apache Commons Math RandomDataGenerator
RandomDataGenerator rdg = new RandomDataGenerator();
rdg.nextUniform(1.0, 900.0, true);
或者您可以继承Random
并实现自己的nextDouble
重载版本。
答案 2 :(得分:0)
random.nextDouble((900 - 1) + 1) + 1);
想一想它。这是一个带参数(900 - 1) + 1) + 1
的方法调用,nextDouble()不接受任何参数,因此您的错误。顺便说一下,你在第二次通话中也错过了一个opening brace
。