Ich bin kürzlich auf Code gestoßen, bei dem die Entwickler sowohl vollständig qualifizierte Klassennamen als auch importierte Klassennamen in ihrem Quellcode verwendeten.
Beispiel:
import packageA.Foo;
public class Example {
public packageB.Bar doSomething() {
final Foo foo = new Foo();
...
}
}
Ich hatte den Eindruck, dass der einzige Grund, warum man einen vollständig qualifizierten Namen für Klassen im Quellcode verwenden möchte, darin besteht, dass sie identische Klassennamen in zwei verschiedenen Paketen haben und den vollständig qualifizierten Namen benötigen, um zwischen den beiden zu unterscheiden. Liege ich falsch?
quelle
Der andere Grund (außer Kollisionen) wäre, wenn Sie eine Klasse nur einmal benötigen. Dies gilt insbesondere dann, wenn die Klasse eine gemeinsame Schnittstelle implementiert und Sie nur den tatsächlichen Klassennamen für die Instanziierung benötigen. Die Verwendung des vollständig qualifizierten Namens erleichtert das Erkennen, dass hier eine ungewöhnliche Klasse verwendet wird und wo sie zu finden ist (unter der Annahme vernünftiger Namenskonventionen).
quelle