![](/img/trans.png)
[英]Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
[英][[Ljava.lang.Integer;@3af4d6b3, [Ljava.lang.Integer;@203ba002]
看來這可能是一個愚蠢的問題,但我無法正確理解為什么每次在控制台上都會出現這種情況。 我已經檢查了每一行,但是每一行都正確響應,但是當出現隨機播放然后打印時,它給了我這個輸出。
我的代碼:
package rando;
import java.util.Arrays;
import java.util.Collections;
public class random
{
public static void main( String [] args)
{
Integer[][] arr = new Integer[2][2];
for (int i = 0; i < arr[1].length; i++)
{
for(int j=0; j<arr[1].length;j++)
{
arr[i][j] = i;
// int iData=(int) (Math.random()*(int)arr[i][j]);
}
}
Collections.shuffle(Arrays.asList(arr));
System.out.println(Arrays.toString(arr));
}
}
在這里,您將創建一個大小為2的數組,每個數組包含兩個大小為2的數組:
Integer[][] arr = new Integer[2][2];
在這里,您可以打印數組的內容:
System.out.println(Arrays.toString(arr));
如果在數組上調用.toString()
,則會得到類似[[Ljava.lang.Integer;@3af4d6b3
。 由於Arrays.toString()
在數組中的每個元素上調用.toString()
,因此可以解釋結果。 如@JB Nizet所示,您可能打算調用Arrays.deepToString()
。
改用這個:
System.out.println(Arrays.deepToString(arr));
數組不會覆蓋toString()
方法。 這就是為什么您使用Arrays.toString()
而不是直接使用arr.toString()
。 但是您的數組包含數組,因此Arrays.toString()
方法顯示外部數組包含的每個內部數組的無意義的toString()
。
如果您想要有意義的表示形式,請遍歷數組,或使用Arrays.deepToString()
,或使用列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.