Java Random类nextDouble()传参可运行?官方文档显示其无参
问题分析:Java 8 Random.nextDouble()传参却不报错的原因
你提到Java 8官方文档里java.util.Random的nextDouble()方法没有参数,但你的代码里传参却能正常运行,这大概率是以下两种情况之一:
实际使用的JDK版本不是Java 8
Java 17及更高版本的java.util.Random新增了nextDouble(double bound)方法,作用是返回[0.0, bound)范围内的随机浮点数。如果你的项目编译或运行环境是Java 17+,哪怕你查的是Java 8的文档,这句代码也能正常编译执行。导入的不是
java.util.Random类
你的代码里虽然写了import java.util.Random;,但项目中可能存在同名的自定义Random类,或者导入了第三方库的Random实现(比如Apache Commons Math、Guava等工具库),这些类中可能包含带参数的nextDouble()方法。你可以在IDE中按住Ctrl(Mac按Cmd)点击代码里的Random,查看实际跳转的类是不是java.util.Random。
另外要注意:如果确实是Java 8环境+java.util.Random,那nextDouble(max - min)这句代码绝对会编译报错,不可能正常运行。你觉得两种写法都能返回正确值,可能是测试时注释状态搞混了,或者运行的是修改后的代码。
内容的提问来源于stack exchange,提问作者Donavan Er
相关产品推荐
相关产品推荐

