次のシナリオでは、タイプ E の 2 つの配列を受け入れるメソッドがあります。この E パラメータは、両方の配列を任意のタイプにすることができますが、同じでなければならないことを理解していました (この質問から派生したように)。1 つは Integer で、もう 1 つは Double の 2 つの配列でこれをテストしましたが、エラーは発生しません。私が受け取る出力は「14」です。これは、エラーがスローされていない両方の配列の合計サイズです。
なぜこれが機能するのか、誰かが光を当てることができますか?
public static <E> void showCombinedLength(E[] array1, E[] array2){
System.out.println(array1.length + array2.length);
}
public static void main(String[] args) {
Integer[] integerArray = {1, 2, 3, 4, 5, 6, 7};
Double[] doubleArray = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7 };
PrintArray.showCombinedLength(integerArray, doubleArray);
}
出力:
14