Как исправить '' Не могу вернуть пустой результат "Java сортировка - PullRequest
0 голосов
/ 23 июня 2019

Когда я пытаюсь отсортировать LinkedList с помощью sort, и я запускаю тест, я получаю следующую ошибку: Нерешенная проблема компиляции: Невозможно вернуть недействительный результат

У меня есть функция, которая рекурсивно выводит список файлов в каталогах и подкаталогах. А затем вернуть LinkedList файлов. Я пытаюсь сделать операцию сортировки до возврата. Но я не могу вернуть недействительный результат. В списке есть файлы перед выполнением сортировки.

public LinkedList<File> recursiveFiles(){
LinkedList<File> resultado = new LinkedList<File>();
//Insert Files on resultado
...
Comparator<File> sorter = new Comparator<File>() {
            @Override
            public int compare(File first, File second) {
                return first.compareTo(second);
            }
        };
        return resultado.sort(sorter);

Я ожидаю отсортировать LinkedList, но у меня возникает проблема с компиляцией: не удается вернуть недействительный результат.

Ответы [ 2 ]

1 голос
/ 23 июня 2019

List.sort() имеет void в качестве возвращаемого значения, поскольку сортирует список, для которого вы вызываете sort().

Так что просто позвоните sort() и верните список после этого:

public LinkedList<File> recursiveFiles(){
    // ...
    resultado.sort(sorter);
    return resultado;
}
0 голосов
/ 23 июня 2019

sort сортирует список на месте и ничего не возвращает (т.е. возвращает void). Если вы хотите вернуть список, вам придется сделать это из отдельного утверждения:

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