Не удается найти символ при использовании функции 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.*;

Я не могу сказать, что хорошей практикой является использование начального импорта вообще. Большинство руководств по кодированию рекомендуют избегать этого. Импорт звёзд подкласса - это не то, с чем вы обычно сталкиваетесь в коде.

Другие вопросы по тегам