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

Collection<A>この回答は、をキャストする方法を説明していますCollection<B>https ://stackoverflow.com/a/1651086/1428461

于 2012-07-03T12:44:57.937 に答える