You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中Random调用nextInt(int,int)提示找不到方法的原因咨询

问题原因与解决办法

核心原因:Java版本不兼容

java.util.random.RandomGenerator接口是Java 17才新增的API,其中的nextInt(int origin, int bound)默认方法也仅在Java 17及以上版本中存在。

如果你的Java版本低于17:

  • RandomGenerator接口本身不存在,java.util.Random自然也没有实现这个接口
  • 此时Random类仅提供两个nextInt重载方法:无参的nextInt()(生成整个int范围的随机数)、单参数的nextInt(int bound)(生成0到bound-1的随机数)
  • 编译器找不到nextInt(int, int)方法,就会抛出no suitable method found的错误

验证当前Java版本

在命令行执行以下命令查看版本:

java -version

如果输出的版本号小于17(比如Java 8、11),就会出现这个问题。

解决思路

1. 升级到Java 17及以上版本

直接升级后,你的代码无需修改,就可以正常调用nextInt(int origin, int bound)方法。

2. 低版本Java下的替代实现

如果无法升级版本,用单参数nextInt结合偏移量实现范围随机。要生成[5, 10)区间的整数(和nextInt(5,10)的逻辑一致),可以这样写:

java.util.Random rnd = new java.util.Random();
for(int i =0; i<10; i++) {
    // nextInt(5)生成0-4的随机数,加5后得到5-9的随机数
    int b = rnd.nextInt(5) + 5;
    System.out.println(b);
}

公式说明:生成[min, max)区间的随机数,写法为rnd.nextInt(max - min) + min。

内容的提问来源于stack exchange,提问作者maverick_xinwei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:02:10