У меня есть список типа Superclass A
, и в этом списке есть несколько объектов из двух подклассов, Subclass B
и Subclass C
, и я хочу отсортировать их по алфавиту, а затем отфильтровать объекты из любого подкласса, примерно так:
List <A> listA= new ArrayList<A>();
Collections.sort(listA);
for (A iterator : listA)
if (iterator instanceof B)
System.out.println(iterator);
Мой вопрос в том, как мне структурировать свой код. Должен ли я реализовать Comparable <A>
и
public int compareTo(A a) {
return name.compareTo(a.getName());
}
как в Superclass
, так и в Subclass
? Если я недостаточно ясно выразился, пожалуйста, так и скажите.
РЕДАКТИРОВАТЬ: я получал ошибку из-за метода, который я оставил в одном из подклассов, который уже был унаследован от суперкласса, и я думал, что ошибка как-то связана со структурой Comparable<A>
, потому что я не был уверен, что это было правильно, но у меня уже был код, как все, что вы мне сказали, но все равно спасибо.