kod atma değildir: Java Doc uyarıncaArrays.sort (nesne []) ClassCastException
public class CompareTest {
public static void main(String[] args) {
ArrayList list = new ArrayList();
(list).add(new CompareTest());
Arrays.sort(list.toArray()); //Does not throw Exception , why ?
Collections.sort(list); //throws ClassCastException
}
}
: doğal göre Arrays#sort
sıralar artan nesnelere belirtilen dizi elemanlarının sıralanması. Dizideki tüm öğeler numaralı Karşılaştırmalı arabirimini uygulamalıdır.
Neden Arrays#sort, JavaDoc tarafından belirtildiği gibi ClassCastException
'u atmaz? Yani
int nRemaining = hi - lo;
if (nRemaining < 2)
return; // Arrays of size 0 and 1 are always sorted
bunun sadece sahip bir dizi sıralamak zorunda değildir, çünkü dizinin elemanları, Karşılaştırılabilir uygulamak olmadığını kontrol rahatsız etmez: Arrays.sort()
kaynak kodu bu kısayolu Çünkü
İlginç - Aynı şey Java 7 TreeMap "sabit", ancak görünüşe edildi Arrays'te değil ... – assylias
Yani javadoc aldatıcı olabilir. – Apurv