[英]Passing int[][] as generic parameter
public static <T> void func1(T[][] arr) {
...
}
public static <T> void func2(T[] arr) {
...
}
我正在嘗試傳遞一個二維數組, int[][] arr
。
我不能使用func1(arr)
,但我可以使用func2(arr)
誰能解釋一下這是如何工作的?
T[]
表示某個通用對象的數組。 任何數組類型(包括int[]
)都是一個對象。 因此,當T = int[]
時, int[][]
是有效的T[]
T = int[]
。
但是,因為int
不是對象,所以int[][]
不是有效的T[][]
。
如果您使用Integer
而不是int
,您應該能夠:
Integer[][] arr
調用func1
Integer[] arr
或Integer[][] arr
調用func2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.