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

Java调用其他类随机数方法后主类打印值为0如何解决

问题原因

  • 调用otherClass的assignNumber()方法时未接收返回值,主类Example中的静态成员变量number始终未被赋值,int类型类成员的默认初始值为0,因此输出结果固定为0。
  • 现有随机数生成逻辑num.nextInt(4) + 1的输出范围是14,不符合13的预期:nextInt(n)会生成取值范围为**[0, n)**的整数,nextInt(4)生成03的整数,加1后取值范围为14。

修复后代码

主类Example

package example;

public class Example {

    public static int number;
    
    public static void main(String[] args) {
        otherClass a = new otherClass();
        // 接收assignNumber方法返回的随机数,赋值给静态变量number
        number = a.assignNumber();
        System.out.println(number);
    }
}

单独类otherClass

package example;

import java.util.Random;

public class otherClass {
     public int assignNumber(){
        Random num = new Random();
        // nextInt(3)生成0~2的整数,加1后取值范围为1~3,符合预期
        int number = num.nextInt(3) + 1;
        return number;
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 17:54:04