Esse import static foi criado, basicamente, para evitar o Constant Interface Antipattern.
O import static geralmente é uma boa quando você está interagindo com classes que só contém métodos estaticos, tal como a java.lang.Math.
Não existe nenhum ganho ao escrever Math. o tempo todo. O código fica mais limpo e mais claro se essa escrita for simplesmente eliminada, através do import static. Especialmente se você chama esses métodos o tempo todo.
Na verdade, pelo conceito de OO, a classe Math do Java nem sequer deveria existir. Ela é um xunxo, para conseguir simular a programação estruturada no Java. E com o import static, é isso mesmo que acontece. Pense bem: Qual seria diferença de criar uma classe só com métodos estáticos e que não permite herança, ou de criar funções sem classe, dentro de um pacote java Math, como seria na programação estruturada? Nenhuma.
Veja como o import static pode aumentar a clareza nesse caso:
//Sem import static
public double distancia(double x1, double y1, double double x2, double y2) {
return Math.sqrt(Math.pow(Math.abs(x1 - x2), 2) + Math.pow(Math.abs(y1 - y2), 2));
}
//Com import static
public double distancia(double x1, double y1, double double x2, double y2) {
return sqrt(pow(abs(x1 - x2), 2) + pow(abs(y1 - y2), 2));
}
(Esse exemplo é só ilustrativo. Na prática não haveria a necessidade de usar abs no cálculo da distância, já que os termos são sempre elevados ao quadrado e, após isso, o resultado é sempre positivo. Usa-se abs apenas quando se quer descobrir o tamanho do segmento de reta em x ou y, isoladamente.)
Não é legal usar o import static em métodos fábrica, ou métodos que cujo significado não pode ser definido sem que você leia o nome da classe que os contém. Por exemplo, o método getByName da classe InetAddress. Fazer um import static desse método só vai deixar o seu código confuso. Imagine o seguinte trecho:
x = getByName(name); //Com import static
Fica melhor assim:
x = InetAddress.getByName(name); //sem import static
Pode ser bacana usar import static em classes que usem muito uma inner class estática pública. A regra básica é a seguinte: Use-o somente se a clareza do código aumentar. E avalie com atenção, pois isso nem sempre acontece.