なぜ Arrays クラスの sort メソッドが Object[] 型のパラメーターを要求しているのか疑問に思っていました。パラメータが Comparable[] 型ではない理由。Comparable[] を渡さないと、ClassCastException が生成されます。
なぜ... public static void sort(Object[] a)であり、public static void sort(Comparable[] a)ではないのですか? ありがとう
なぜ Arrays クラスの sort メソッドが Object[] 型のパラメーターを要求しているのか疑問に思っていました。パラメータが Comparable[] 型ではない理由。Comparable[] を渡さないと、ClassCastException が生成されます。
なぜ... public static void sort(Object[] a)であり、public static void sort(Comparable[] a)ではないのですか? ありがとう
2 番目の形式では、配列の再割り当てが必要になるためです。配列に同等のものしか含まれていないことがわかっていても、配列の型が一致しないため、元の型が Object[] の場合は単に Comparable[] にキャストすることはできません。
できるよ:
Object[] arr = new String[0];
String[] sarr = (String[]) arr;
しかし、あなたはできません:
Object[] arr = new Object[0];
String[] sarr = (String[]) arr;
したがって、それは時期尚早の最適化です:)
そうしないと渡れませんObject[]
。