Java 将random.nextInt()作为参数传递会导致奇怪的问题

Java 将random.nextInt()作为参数传递会导致奇怪的问题,java,random,parameters,Java,Random,Parameters,我试图将一个随机整数传递给构造函数 hotels[2] = new Hotel(random.nextInt(10)+30, random.nextInt()+100, random.nextInt()+20, random.nextInt()+200, random.nextInt()+10, random.nextInt()+300); 然而,在DataPoint构造函数中,在内部传递的值是荒谬的,即 Params 1,

我试图将一个随机整数传递给构造函数

hotels[2] = new Hotel(random.nextInt(10)+30, random.nextInt()+100, 
                random.nextInt()+20, random.nextInt()+200, 
                random.nextInt()+10, random.nextInt()+300);
然而,在DataPoint构造函数中,在内部传递的值是荒谬的,即

Params 1, 3, 5:      38   -695807826   -2078518332

得到-695807826是没有意义的。由于随机性,号码应该在20到40之间。nextInt+20

我意识到呼叫时出现了问题

random.nextInt()+20
在参数列表中

当我在方法调用之前生成随机数时,我会得到正常的结果

        a = random.nextInt(10)+30;
        b = random.nextInt(10)+20;
        c = random.nextInt(10)+10;
        ...
        hotels[2] = new Hotel(a, b, c, ...);

如果执行random.nextInt+300之类的操作,并且random.nextInt调用的结果在最大整数值的300范围内,则会出现溢出,结果将被解释为负数。

这只是因为在第一个参数之后,您忘记了向nextInt添加参数

你的电话应该是:

hotels[2] = new Hotel(random.nextInt(10)+30, random.nextInt(10)+100, 
                random.nextInt(10)+20, random.nextInt(10)+200, 
                random.nextInt(10)+10, random.nextInt(10)+300);

你知道你在这里举的例子与你在问题中所说的不同,对吗?随机。下一个10+10和随机。下一个10+10不要做同样的事情…哦,我不知道我怎么会错过。