我正在尝试将随机整数传递给构造函数。
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
毫无意义。由于random.nextInt()+20
答案 0 :(得分:7)
这只是因为在第一个参数之后,您忘记将参数添加到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);
答案 1 :(得分:4)
如果您执行random.nextInt()+300
之类的操作并且random.nextInt()
调用的结果在最大整数值的300之内,您将会溢出并且结果将被解释为负数。< / p>
答案 2 :(得分:-3)
我意识到问题在于调用
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, ...);