Tenho os seguintes códigos de exemplos:
import java.util.Comparator;
palavras.sort(Comparator.comparing(String::length));
palavras.forEach(System.out::println);
import static java.util.Comparator.comparing;
palavras.sort(comparing(String::length));
palavras.forEach(System.out::println);
Ao que eu entendi, o import static serviria para deixar o código ainda mais enxuto, porém, não vi sentido nisso e explico. No caso do primeiro exemplo fica explícito que o método comparing vem da interface comparator, como eu não sei quem vai ler o meu código e muito menos sei o nível de conhecimento, acredito que esse tipo de informação seja útil. No segundo exemplo, em tese o código está mais enxuto, porém, para que eu não precise escrever o nome da interface eu tenho que adicionar duas palavras no import, lembrando que esse import não é feito com o atalho ctrl+shift+o como os imports normais são, pelo menos não na minha versão do Eclipse, logo, eu vejo que não há economia no número de caracteres do código, o código perde explicitude da origem do método comparing utilizado e acaba sendo um código que exige mais do conhecimento prévio do leitor, ao meu entender o código só ficou maior, mais trabalhoso e mais complexo. Caso alguém tenha alguma visão diferente, por favor diga, estou curioso sobre esse assunto.