Почему Comparator.comparing не работает со ссылкой на метод String :: toLowerCase?

Я пытаюсь отсортировать массив строк в обратном порядке (игнорируя регистр), не изменяя его, а просто распечатывая его. Поэтому я использую поток Java8. Но я не могу этого сделать.

Вот моя попытка:

package experimentations.chapter02;

import java.util.Arrays;
import java.util.Comparator;
import java.util.stream.Collectors;

public class StringStream {

    public static void main(String[] args) {
        sortStrings();
    }

    public static void sortStrings(){
        String[] stringsArray = "The quick brown fox has a dirty ladder".split("\\s+");
        System.out.println(
                Arrays.stream(stringsArray)
                .sorted(Comparator.comparing(String::toLowerCase).reversed())
                .collect(Collectors.toList())
        );
    }

}

Проблема здесь в том, чтоString::toLowerCase не принимается в статическом методеComparator.comparing.

Между тем мне удалось отсортировать массив, номодифицирующий Это:

public static void sortStrings(){
        String[] stringsArray = "The quick brown fox has a dirty ladder".split("\\s+");
        System.out.println(
                Arrays.stream(stringsArray)
                .map(String::toLowerCase)
                .sorted(Comparator.reverseOrder())
                .collect(Collectors.toList())
        );
}

Итак, каков самый простой обходной путь?

Ответы на вопрос(2)

Ваш ответ на вопрос