Collections.sort генерирует исключение UnsupportedOperationException при сортировке списка после функции Lava.transform в Java. - PullRequest
0 голосов
/ 30 октября 2018

У меня есть список, который я преобразую, используя функцию Lists.transform Гуавы. Позже, когда я пытаюсь отсортировать список, используя Collections.sort(), я получаю UnsupportedOperationException.

Мой код выглядит так:

private List<SelectItemInfo> convertToSelectItemList(
        final List<String> dataOwnersOfActiveQualifiers)
    {

        final List<SelectItemInfo> dataOwnersSelectItemList = transform(dataOwnersOfActiveQualifiers,
            new Function<String, SelectItemInfo>()
            {
                public SelectItemInfo apply(final String input)
                {
                    final Employee employee = getLdapQuery().findEmployeesByIdOrLogin(input);
                    return new SelectItemInfo(input, employee.toStringNameSurname());
                }
            });
        Collections.sort(dataOwnersSelectItemList, this.comparator);
        return dataOwnersSelectItemList;
    }

Я не уверен, почему я получаю эту ошибку.

1 Ответ

0 голосов
/ 30 октября 2018

Collections.sort должен иметь возможность вызывать набор из списка и заставить его выполнять ожидаемые действия. Список, возвращаемый функцией transform, не поддерживает его метод set (это список «только для чтения»).

Простое решение - создать новый список и отсортировать его

List<SelectItemInfo> sortedCopy = new ArrayList(dataOwnersSelectItemList);
Collections.sort(sortedCopy, this.comparator);
// use sortedCopy

Потоки - лучшее решение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...