快速提问。
为什么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) + 1nextDouble ()不接受任何参数,因此您的错误。opening brace顺便说一句,您在第二次通话中也缺少一个。