导入后使用 entrySet() 函数时找不到符号 java.util。*

Cannot find symbol when using entrySet() function after import java.util.*

我正在使用函数 Map.entrySet()。当我使用 import java.util.* 时,它给出了找不到符号错误。但是,当我执行 import java.util.Map.Entry 时,它会编译。 “*”不应该包括 Map.Entry?

我错过了什么吗?

底线使用导入 java.util.* 给我找不到符号错误。 对于相同的代码,import java.Map.Entry; 不会。为什么?

谢谢。

star 导入用于导入包的所有 classes。当您指定

import java.util.*;

您表示所有具有全名 java.util.<ClassName> 的 class 都将被视为导入。

java.util.Map.Entryjava.util.Map class 的内部 class。 sub-classes 的明星导入将是这样的

import java.util.Map.*;

我不能说使用 start imports 是个好习惯。大多数编码指南都建议避免使用它。 Sub-class 星导入不是您通常会在代码中遇到的东西。