Это происходит потому, что вы пытаетесь отсортировать массив cdinventoryItem
объектов, но cdinventoryItem
не реализует Comparable
. Таким образом, Arrays.sort
не имеет понятия о том, как отсортировать ваш массив. Вам нужно реализовать Comparable
, чтобы определить естественный порядок ваших объектов.
Например, если вы хотите заказать его по title
:
public class cdinventoryItem implements Comparable<cdinventoryItem> {
// your code
public int compareTo(cdinventoryItem otherItem) {
return this.Ptitle.compareTo(otherItem.getTitle());
}
public String getTitle() {
return Ptitle;
}
}
В качестве альтернативы вы можете использовать Arrays.sort(T[], java.util.Comparator)
и определить используемый метод сортировки:
cdinventoryItem initem[] = new cdinventoryItem[DEFAULT_LENGTH];
// fill array
Arrays.sort(initem,
new Comparator<cdInventoryItem>() {
public int compare(cdInventoryItem item1, cdInventoryItem item2) {
return item1.getTitle().compareTo(item2.getTitle());
}
}
);
PS : Пожалуйста, , попробуйте следовать Соглашениям Oracle об именах Например, имена классов Java должны быть существительными в смешанном регистре с первой буквой каждого внутреннего слова, заглавными . Таким образом, вместо cdInventoryItem
вы должны иметь CdInventoryItem
.