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

Java中如何将随机数传入构造方法?3个随机数的传参困惑

嘿,这问题我熟!其实核心思路很简单——先把你用for循环生成的三个随机数存起来,再根据构造方法的参数类型传进去就行。我给你举几个常见语言的例子,你一看就懂:

Java 实现方式

方式1:用List存储随机数,再逐个取出传参

如果你的构造方法是接受三个单独的数值参数(比如public MyClass(int a, int b, int c)),可以先把循环生成的数存到List里,再通过索引取出传入:

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Demo {
    public static void main(String[] args) {
        // 用for循环生成3个随机数并存入List
        List<Integer> randomNums = new ArrayList<>();
        Random random = new Random();
        for (int i = 0; i < 3; i++) {
            randomNums.add(random.nextInt(100)); // 生成0-99的随机整数
        }

        // 调用构造方法,传入三个随机数
        MyClass myObj = new MyClass(randomNums.get(0), randomNums.get(1), randomNums.get(2));
    }
}

// 自定义类的构造方法
class MyClass {
    public MyClass(int num1, int num2, int num3) {
        // 这里处理你的逻辑,比如打印或者存储
        System.out.println("收到三个随机数:" + num1 + ", " + num2 + ", " + num3);
    }
}

方式2:用数组存储,直接传数组给构造方法

如果你的构造方法支持接收数组参数(比如public MyClass(int[] nums)),那更省事:

import java.util.Random;

public class Demo {
    public static void main(String[] args) {
        int[] randomNums = new int[3];
        Random random = new Random();
        for (int i = 0; i < 3; i++) {
            randomNums[i] = random.nextInt(100);
        }

        // 直接把数组传给构造方法
        MyClass myObj = new MyClass(randomNums);
    }
}

class MyClass {
    public MyClass(int[] nums) {
        System.out.println("收到随机数数组:" + nums[0] + ", " + nums[1] + ", " + nums[2]);
    }
}

Python 实现方式

Python里用列表推导式(本质也是循环)生成随机数后,还能通过解包快速传参,非常方便:

import random

class MyClass:
    def __init__(self, num1, num2, num3):
        print(f"收到三个随机数:{num1}, {num2}, {num3}")

# 用循环生成3个随机数(列表推导式)
random_nums = [random.randint(0, 99) for _ in range(3)]

# 用*解包列表,直接把三个元素传给构造方法
my_obj = MyClass(*random_nums)

如果你的构造方法支持接收列表,那直接传列表就行:

import random

class MyClass:
    def __init__(self, nums):
        print(f"收到随机数列表:{nums}")

random_nums = [random.randint(0, 99) for _ in range(3)]
my_obj = MyClass(random_nums)

总之,不管用哪种语言,核心就是先把循环生成的随机数临时存储起来,再匹配构造方法的参数形式传递。如果构造方法必须要三个单独参数,就把存储的数逐个取出;如果支持集合/数组,直接传集合/数组更高效。

内容的提问来源于stack exchange,提问作者call me AL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:53:10