¿Por qué Comparator.comparing no funciona con la referencia del método String :: toLowerCase?

Estoy tratando de ordenar un conjunto de cadenas por orden inverso (ignorando mayúsculas y minúsculas), sin modificarlo y solo imprimiéndolo. Entonces estoy usando Java8 stream. Pero no puedo hacerlo.

Aquí está mi intento:

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())
        );
    }

}

El problema aquí es queString::toLowerCase no se acepta en el método estáticoComparator.comparing.

Mientras tanto, logré ordenar la matriz, peromodificando eso:

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())
        );
}

Entonces, ¿cuál es la solución más simple?

Respuestas a la pregunta(2)

Su respuesta a la pregunta