如何在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。。。