-
错误原因
在执行程序时候出现[I@6e0be858,而不是自己想要输出的数字,是因为没有将数组里面的数值进行遍历输出(通俗点说是没有加索引),而是通过数组名一整个输出,才会出现[I@6e0be858,这个结果代表是内存的地址值,@前面的 I 代表是 int 型的数据类型。 -
解决办法
检查是否将数组元素遍历输出,或者检查是否在遍历的时候添加索引。 -
错误示例
for (int j = 0; j < dishNames.length; j++) {
// 点赞信息——>"赞"
String praise = (praiseNum[j] == 0) ? "" : praiseNum + "赞";
System.out.println((j + 1) + "\t\t" + dishNames[j] + "\t\t" + prices[j] + "\t" + praise);
}
改正后
for (int j = 0; j < dishNames.length; j++) {
// 点赞信息——>"赞"
String praise = (praiseNum[j] == 0) ? "" : praiseNum[j] + "赞";
System.out.println((j + 1) + "\t\t" + dishNames[j] + "\t\t" + prices[j] + "\t" + praise);
}
上述错误就是 在没有逐个输出数组元素 praiseNum[j], 而是将 praiseNum 输出。