2017-10-15 4 views
-1

J'utilise une fonction Map.entrySet(). Quand j'utilise import java.util.* il donne ne peut pas trouver l'erreur de symbole. Mais, quand je fais import java.util.Map.Entry il compile. Ne doit pas inclure "*" Map.Entry?Impossible de trouver le symbole lors de l'utilisation de la fonction entrySet() après l'importation de java.util. *

Ai-je raté quelque chose?

La ligne inférieure utilisant l'importation java.util.* me donne pas d'erreur de symbole. Pour le même code, l'importation java.Map.Entry; ne l'est pas. Pourquoi?

Merci.

+1

Veuillez indiquer le code qui n'a pas pu être compilé. – dasblinkenlight

+0

"Ne devrait pas" * "inclure Map.Entry?" Je ne le pense pas (si vous utilisez directement 'Entry ', vous devez' importer juMap.Entry'.) Habituellement, 'Map.Entry' est utilisé pas' Entry') –

+0

En note, vous devriez commencer à utiliser un IDE , ils traitent l'importation pour vous;) –

Répondre

3

L'importation en étoile est utilisée pour l'importation de toutes les classes du package. Lorsque vous spécifiez

import java.util.*; 

Vous dénotant que toutes les classes qui ont le nom complet java.util.<ClassName> doivent être considérés comme importés.

java.util.Map.Entry est une classe interne de classe java.util.Map. L'importation d'étoile pour les sous-classes sera quelque chose comme ça

import java.util.Map.*; 

Je ne peux pas dire que c'est une bonne pratique d'utiliser les importations commencer du tout. La plupart des directives de codage recommandent de l'éviter. Les importations d'étoiles de la sous-classe ne sont pas quelque chose que vous rencontrerez habituellement dans le code.

+0

Merci pour votre explication. –