我有一个List<Iterable<Object>>
类型的列表,在某些情况下,集合中的对象也是Comparable
。
这意味着在某些情况下,它是一个列表,其中包含许多类型为A Comparable
的对象,在某些其他情况下,它包含许多类型为B的对象Comparable
。当我有一个B类型的对象列表时,我希望能够对它们进行排序。
当列表中的所有对象都是Comparable
时,我需要使用Collections.sort()
或类似的东西对它们进行排序。 Java不允许我转换整个列表,并且我不能转换单个元素,因为它们可能没有实现Comparable
接口。有工作吗?
如果有用,这是我的代码:
Iterable<Object> iterable;
List<Iterable<Object>> valori = new ArrayList<Iterable<Object>>();
Integer valoriLetti = 0;
iterable = new ArrayList<Object>();
while (iterable != null && valoriLetti < numero) {
// Object object = beanReader.read();
try {
iterable = (Iterable<Object>) beanReader.read();
} catch (InvalidRecordException ex) {
log.error(this.toString());
log.error(ex);
log.error(ex.getStackTrace());
}
if (iterable != null) {
((IEntityAmount) iterable).moltiplicaImporti();
((IEntityAmount) iterable).troncaImporti();
valori.add(iterable);
valoriLetti += 1;
// if (iterable.iterator().hasNext()) {
// valori.add(leggiValori(iterable));
// valoriLetti += 1;
// }
} else {
break;
}
}
答案 0 :(得分:1)
此答案解释了如何将Collection<A>
投射到Collection<B>
:https://stackoverflow.com/a/1651086/1428461