如何在java中返回数组?使用Eclipse
以下是我对该方法的看法:如何在java中返回数组?使用Eclipse,java,eclipse,Java,Eclipse,以下是我对该方法的看法: public int[] generateNumbers(int numberOfTimes){ int[] generatedNumbers = new int[numberOfTimes]; int counter = 0; while(counter < generatedNumbers.length){ generatedNumbers[counter] = generator.nex
public int[] generateNumbers(int numberOfTimes){
int[] generatedNumbers = new int[numberOfTimes];
int counter = 0;
while(counter < generatedNumbers.length){
generatedNumbers[counter] = generator.nextInt(this.maxNumber - this.minNumber + 1) + this.minNumber;
counter++;
}
return generatedNumbers;
}
现在,这显然返回false,预期值为。为什么我得到的是一个位置而不是实际阵列?任何帮助都将不胜感激。。。顺便说一句,我们必须使用assertEquals,所以其他任何东西都是不可能的,是的,我意识到使用其他东西来测试这一点更容易。您需要使用
AssertArrayQuals()
您需要使用
assertarayequals()
为什么我得到的是一个位置而不是实际阵列
您正在获取数组(reference),但错误消息正在打印对其调用toString()
的结果。不幸的是,这对你没什么用处
如果您确实要检查长度,则需要执行以下操作:
assertEquals(1, simulator.generateNumbers(1).length);
或检查数组中的第一个值:
assertEquals(2, simulator.generateNumbers(1)[0]);
(请注意,预期值排在第一位。正确获取“预期”和“实际”顺序非常重要,以便使错误消息变得合理。)
当然,assertarayequals
是这里最好的方法,但是如果确实需要使用assertEquals
,可以将数组转换为列表:
assertEquals(Arrays.asList(new int[] { 2 }),
Arrays.asList(simulator.generateNumbers(1)));
(不清楚为什么assertEquals
将是您唯一可用的断言……这是一个非常奇怪的约束。)
为什么我得到的是一个位置而不是实际阵列
您正在获取数组(reference),但错误消息正在打印对其调用toString()
的结果。不幸的是,这对你没什么用处
如果您确实要检查长度,则需要执行以下操作:
assertEquals(1, simulator.generateNumbers(1).length);
或检查数组中的第一个值:
assertEquals(2, simulator.generateNumbers(1)[0]);
(请注意,预期值排在第一位。正确获取“预期”和“实际”顺序非常重要,以便使错误消息变得合理。)
当然,assertarayequals
是这里最好的方法,但是如果确实需要使用assertEquals
,可以将数组转换为列表:
assertEquals(Arrays.asList(new int[] { 2 }),
Arrays.asList(simulator.generateNumbers(1)));
(不清楚为什么assertEquals
是您唯一可用的断言……这是一个非常奇怪的约束。)如果您绝对必须使用assertEquals
(我想知道为什么),您可以这样做:
assertEquals(true, Arrays.equals(new int[] { 2 }, this.simulator.generateNumbers(1)));
如果您必须使用assertEquals
(我想知道为什么),您可以这样做:
assertEquals(true, Arrays.equals(new int[] { 2 }, this.simulator.generateNumbers(1)));
您将数组与
int
进行比较,这确实是错误的=\[I@6f1d0b1
不是一个位置。[
表示它是一个一维数组。I
表示它是由整数组成的,6f1d0b1
表示该数组的哈希代码。只是提醒一下:)是的,我意识到了这一点……但是,我只是想要模拟器的返回值。我并不真正关心2,只是想知道为什么我要返回所有的数据谢谢Obicere!您将数组与int
进行比较,这确实是错误的=\[I@6f1d0b1
不是一个位置。[
表示它是一个一维数组。I
表示它是由整数组成的,6f1d0b1
表示该数组的哈希代码。只是提醒一下:)是的,我意识到了这一点……但是,我只是想要模拟器的返回值。我并不真正关心2,只是想知道为什么我要返回所有的数据ht,谢谢Obicere!显然,assertEquals
是OP允许使用的唯一一种断言,这是一个非常奇怪的约束,依我看。哦。估计是这样的。谢谢!这是一门CS课。我们的教授非常严格……我想这在技术上是assertEquals……显然,assertEquals
是开着的这是一种允许OP使用的断言,这是一种非常奇怪的约束,依我看。哦。我想应该是这样的。谢谢!这是一门CS课程。我们的教授非常严格……我想这在技术上是assertEquals。。。