Recientemente me encontré con un código en el que los desarrolladores usaban nombres de clase totalmente calificados Y nombres de clase importados en su código fuente.
Ejemplo:
import packageA.Foo;
public class Example {
public packageB.Bar doSomething() {
final Foo foo = new Foo();
...
}
}
Tenía la impresión de que la única razón por la que uno podría desear usar un nombre completo para las clases en el código fuente es cuando tienen nombres de clase idénticos en dos paquetes diferentes y necesitan el nombre completo para distinguir entre los dos. ¿Me equivoco?
fuente
La otra razón (excepto las colisiones) sería si necesita una clase solo una vez. Esto es especialmente cierto si la clase implementa una interfaz común y solo necesita el nombre de clase real para la creación de instancias. El uso del nombre completo hace que sea más fácil reconocer que aquí se usa una clase poco común y dónde encontrarla (suponiendo convenciones de nomenclatura sensatas).
fuente