我有一個方法,它接受int []參數。我想通過它一系列的短褲。但我得到的是「不兼容的類型:short []不能轉換爲int []」。這是爲什麼? 一個例子:爲什麼我不能在java中傳入一個short的數組來接受int數組?
short[] arr = new short[2];
arr[0] = 8;
arr[1]=9;
example(arr);
example(int[] anArray){
}
據我所知,短int是剛剛拉大,所以應該自動類型強制轉換,不應該嗎? 如何通過它呢? 謝謝。
你已經有了一些很好的特定的Java-解答您的問題。但是,由於'short''和'int'似乎是相關的,因此你認爲'short []'和'int []'會相互關聯,這是非常合理的。如果您想更多地瞭解這些問題,請從http://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)開始。 –
從技術上講,Java可能可以做到這一點,因爲數組是(幾乎)完整的對象,因此讀/寫數組元素的操作知道(或可能)實際的數組元素類型。所以至少有一部分答案是C不能處理相同的情況,而Java是在C之後建模的。無論這種改變是好還是壞都難以判斷。 (但它在Java中永遠不會改變 - 也許是一些後續語言。) –