1

我有一个类型列表,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;
        }
    }
4

1 回答 1

1

此答案解释了如何将 aCollection<A>转换为Collection<B>https ://stackoverflow.com/a/1651086/1428461

于 2012-07-03T12:44:57.937 回答