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