Imagine que tu utilises une classe du package java.util.
Tu fais Ensuite, dans la même classe, tu utilises une classe du , et tu fais donc Et maintenant, tu veux utiliser la classe Date qui se trouve dans le package java.util. Et bien, tu va devoir toujours l'utiliser de façon complete (
java.util.Date date = new java.util.Date()
) pour indiquer au compilateur que tu parles bien de et pas de Si tu avais fait tes imports du style
1 2 3 4
| import java.util.Date;
import java.util.UnAutreClasse;
import java.sql.Statement;
import java.sql.ResultSet; |
...
Cela n'aurait pas été nécessaire de devoir spécifier tout le temps java.util.Date();
Maintenant, si tu utilises dans le même code java.util.Date et java.sql.Date, tu peux également faire la chose suivante
1 2 3 4 5
| import java.util.Date;
...
Date currentDate = new Date();
...
java.sql.Date dbDate = new java.sql.Date(); |
Et cela est également vrai si tu as
1 2 3 4 5 6
| import java.util.Date;
import java.sql.*;
...
Date currentDate = new Date();
...
java.sql.Date dbDate = new java.sql.Date(); |
le compilateur donne priorité à la classe qui est clairement spécifiée dans les import dans le cas où on ne précise rien.
Maintenant, si tu as
1 2
| import java.util.*;
import java.sql.*; |
alors t'es obligé d'écrire dans ton code
1 2 3 4
|
java.util.Date currentDate = new java.util.Date();
...
java.sql.Date dbDate = new java.sql.Date(); |
Car le compilateur ne sait pas donner de priorité.
Personnellement, j'aime bien dire clairement ce que j'utilise et pas plus, donc, j'évite les import avec *.
Vincent
Partager