Java: istruzione di importazione rispetto al nome completo?

Ho provato a trovare una risposta a questo sia online che nel mio set di conoscenze, ma non riesco a trovare una risposta definitiva e chiara.

Supponiamo che io stia usando una sola class da un altro pacchetto solo una volta che deve essere importato, ad esempio myPack.anotherPackage.ClassName .

Qual è la differenza, se esiste, tra l’utilizzo di una dichiarazione di importazione :

 import myPack.anotherPackage.ClassName; 

contro l’utilizzo di un nome completo :

 myPack.anotherpackage.ClassName classInst = new myPack.anotherpackage.ClassName(); 

?

Ovviamente questa domanda si applica solo se ClassName viene usato una sola volta.

Le istruzioni di importazione rendono il tuo codice più leggibile , dal momento che non stai ingombrando il codice con il pacchetto completo.

Nel caso in cui ci sia un conflitto di ClassNames , allora solo in quel caso è consigliabile andare per i nomi completi .

Nessuno, secondo me. Guarda il bytecode: non ci sarà differenza.

  javap -c  

1. Si tratta più del valore di readability che dell’importanza functional .

2. la dichiarazione di import fornisce un cleaner code rispetto all’uso del nome completo del pacchetto insieme al nome della class o interface .

3. Ma devi fare attenzione durante l’ importazione di pacchetti che sono ambigui come.

  `java.awt.List` and `java.util.List` 

Quindi devi importarne uno completo e uno con il nome completo del pacchetto, come di seguito

 import java.util.List; and java.awt.List l = new java.awt.List(); 

Dalla mia conoscenza nessuna differenza. L’unica differenza è la verbosità del tuo codice. Generalmente più verboso è difficile da leggere. Forse guarda il bytecode?

Non c’è una vera differenza, specialmente per il tuo caso semplice specifico citato qui. Vedi Java: usa il nome dell’importazione o del pacchetto / class espliciti?

Non c’è alcuna differenza dopo la compilazione del codice. In entrambi i casi il codice byte avrà nomi completi, vale a dire che i nomi di class vengono sostituiti automaticamente con nomi qualificati dal compilatore. È solo per rendere la vita dei programmatori facile, in cui non è necessario scrivere un nome completo per fare riferimento a una class.

L’importazione e il pacchetto vengono utilizzati per la denominazione e la protezione dell’accesso (impostazione predefinita). La semplice ragione per cui ci sono molte classi con lo stesso nome.

Per distinguere tra di loro è necessario separarli sotto pacchetti e importarli quando richiesto.

Non c’è differenza nell’importare una class o digitare direttamente il nome completo, tuttavia ci sono alcune piccole differenze. 1. Soprattutto se si importano tutte le classi nel pacchetto (ad es. Import xyz. *;) Le classi possono ancora avere problemi di denominazione, ad esempio se ci sono più importazioni generali che si potrebbero utilizzare classi errate in fase di esecuzione.

  1. In caso di caricamento dinamico delle classi in fase di esecuzione, ad esempio la registrazione del driver JDBC in fase di esecuzione, è necessario fornire un nome class completo come parametro in modo che possa essere caricato in modo dinamico.

In generale, seguire le migliori pratiche: 1. Non utilizzare mai l’importazione abc. *; formato di importazione e importa sempre singole classi (eclipse o alcuni IDE possono correggere automaticamente le importazioni in * e devono disabilitarlo) 2. Devi usare il nome completo della class quando hai già importato una class con lo stesso nome e vuoi usarne un’altra class con lo stesso nome sotto lo stesso programma. 3. Spero che aiuti 🙂