java - 当比较两个相同的 Integer 类变量时,java 说它不相等
问题描述
所以我有比较两个整数变量的代码,它们是同一件事,但不知何故java说它不是。它将这个打印到控制台:
The expected and actual don't match: java.lang.AssertionError: expected:<[Ljava.lang.Integer;@7cf10a6f> but was:<514579>
对于以下代码:
@Test
public void testDay_1() {
Integer[][] testCases= {
{1721, 979, 366, 299, 675, 1456},
{2020, 0}
};
Integer[] expected = {
514579,
0
};
for (int i = 0; i < testCases.length; i++) {
Integer actual = DayOne.find2020Sum(testCases[i]);
try {
Assert.assertEquals(expected, actual); //HERE
} catch (AssertionError e) {
System.out.println("The expected and actual don't match: " + e);
Assert.fail();
}
}
System.out.println("Done");
}
如何让代码正确匹配预期和实际的 514579?我不知道为什么它们都是相同类型的变量,但一个正在打印内存地址,另一个正在打印实际数字。我尝试了 System.out.println 来查看 [Ljava.lang.Integer;@7cf10a6f> 如何打印出来,它还打印内存地址和实际的 514579 数字,我不明白为什么它们都不打印数字。如果有人可以帮助我真的很感激!
解决方案
根据您的代码,预期是一个数组。因此,您正在将数组与整数进行比较。
对我来说不是很清楚,但也许您想与预期的[i]进行比较?
推荐阅读
- xaml - 自定义按钮的 ImageButtonGestureRecognizers
- c# - 使用 REST API 和 C# 将 PDF 文件上传到 Azure Blob 存储(不使用任何 AZURE STORAGE SDK)
- python - 如何避免编码 UTF-8 错误的问题
- javascript - 使用 face-api.js 进行实时网络摄像头人脸识别,我的代码哪里错了?它没有检测到任何东西
- javascript - 从数组键中获取值并构建一个新数组
- javascript - 冒号后的Javascript函数
- nginx - 在 Heroku 上的 NGINX 中使用 `geo` 指令
- firebase - Firebase 复杂的函数自定义域
- javascript - 承诺解决并将道具传递给嵌套子级时如何更新Vue组件
- php - 在 Swift Xcode Alamofire 中从 Bundle 中检索 PHP JSON 数组