Не удается найти символ при использовании функции entrySet() после импорта java.util.*
Я использую функцию Map.entrySet()
, Когда я использую import java.util.*
это дает не может найти ошибку символа. Но когда я делаю import java.util.Map.Entry
это компилируется. Не должен включать "*" Map.Entry?
Я что-то пропустил?
Итог используя импорт java.util.*
дает мне не может найти ошибку символа. Для того же кода импорта java.Map.Entry;
не. Зачем?
Благодарю вас.
1 ответ
Звездный импорт используется для импорта всех классов пакета. Когда вы указываете
import java.util.*;
Вы указываете, что все классы, которые имеют полное имя java.util.<ClassName>
должны считаться импортированными.
java.util.Map.Entry
это внутренний класс java.util.Map
учебный класс. Звездный импорт для подклассов будет примерно таким
import java.util.Map.*;
Я не могу сказать, что хорошей практикой является использование начального импорта вообще. Большинство руководств по кодированию рекомендуют избегать этого. Импорт звёзд подкласса - это не то, с чем вы обычно сталкиваетесь в коде.