¿Por qué el nombre de clase / objeto debe especificarse explícitamente para referencias de método?

Cuando quiero referirme al método en el alcance actual, todavía necesito especificar el nombre de la clase (para métodos estáticos) othis antes de:: operador. Por ejemplo, necesito escribir:

import java.util.stream.Stream;

public class StreamTest {
    public static int trimmedLength(String s) {
        return s.trim().length();
    }

    public static void main(String[] args) {
        System.out.println(Stream.of("  aaa  ", "  bb ", " c ")
                .mapToInt(StreamTest::trimmedLength).sum());
    }
}

No es un gran problema parathis, pero a veces parece abarrotado de métodos estáticos ya que el nombre de la clase puede ser bastante largo. Sería bueno si el compilador me permitiera escribir simplemente::trimmedLength en lugar:

public static void main(String[] args) {
    System.out.println(Stream.of("  aaa  ", "  bb ", " c ")
            .mapToInt(::trimmedLength).sum());
}

Sin embargo, el compilador Java-8 no permite esto. Para mí, parece que sería bastante consistente si el nombre de la clase / objeto se resolviera de la misma manera que se hace para la llamada al método normal. Esto también admitiría importaciones estáticas para referencias de métodos que también pueden ser útiles en ciertos casos.

Entonces, la pregunta es ¿por qué tal o similar sintaxis no se implementó en Java 8? ¿Hay algún problema que surja con tal sintaxis? ¿O no se consideró simplemente en absoluto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta