Modalità di Import

DOMANDA:

Che differenza c'è tra l'import completo esplicitando il nome della classe e l'ometterlo utilizzando il wildcard "*" (asterisco)?


import java.io.*;

import java.io.BufferedReader;

RISPOSTA:

A discapito di quanto possa sembrare, il file .class non avrà differenze né di grandezza, né di velocità di esecuzione. Infatti l'import indica al compilatore soltanto dove andare a cercare le classi che utilizziamo.

La prova scientifica di quanto affermato è possibile averla ricavando il checksum md5 di una classe scritta con gli import espliciti ed una con il wildcard "*". Il risultato sarà identico.

Quindi l'unica differenza tra le due modalità di importare sta nella velocità di compilazione (perché ci metterà del tempo in più per trovare la classe all'interno del package indicato con l'asterisco). In ogni caso parliamo di tempi ridottissimi e quindi trascurabili per i medi progetti.

Concludendo, gli unici veri motivi per cui sarebbe preferibile non usare gli asterischi sono: la chiarezza degli import e l'eliminazione della possibilità di far nascere conflitti tra classi differenti ma con lo stesso nome.


Commenti

Post popolari in questo blog

Arrotondamento e troncamento in Java

Eclipse: Shortcuts (scorciatoie) da tastiera

Strutture dati: List, Set, Map

Creare un eseguibile Java