Конвертировать из списка > в список - PullRequest
0 голосов
/ 05 августа 2020

Это моя проблема, у меня есть функция listToSublists Я абсолютно хочу быть generi c поэтому я написал это:

public static List<List<? extends Object>> listToSubLists(List<? extends Object> elements, int sublistsLength) {
    ....
}

И я хочу вызвать эту функцию таким образом :

List<LigneMaj> datas = ...;
List<List<LigneMaj>> datasPaquets = BatchUtils.listToSubLists(datas, 100);

Похоже, что это невозможно скомпилировать, и я изо всех сил пытаюсь понять, почему я получаю эту ошибку:

Type mismatch: cannot convert from List<List<? extends Object>> to List<List<LigneMaj>>

Может кто-нибудь объяснить, что мне не хватает, пожалуйста ?

1 Ответ

0 голосов
/ 05 августа 2020
public static <T> List<List<T>> listToSubLists(List<T> elements, int sublistsLength) {
        if (!elements.isEmpty()) {
            List<List<T>> result = new ArrayList<>();

            final int sublists = ((elements.size() - 1) / sublistsLength) + 1;
            for (int i = 0; i < sublists; i++) {
                result.add(new ArrayList<>());
            }

            for (int currentIndex = 0; currentIndex < elements.size(); currentIndex++) {
                final T elem = elements.get(currentIndex);
                result.get(currentIndex / sublistsLength).add(elem);
            }

            return result;
        } else {
            return Collections.emptyList();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...