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

Sti*_*bba 0 java import hashmap entryset

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

我错过了什么吗?

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

谢谢你。

小智 7

星形导入用于导入包的所有类。当您指定

import java.util.*;
Run Code Online (Sandbox Code Playgroud)

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

java.util.Map.Entry是类的内部java.util.Map类。子类的星形导入将是这样的

import java.util.Map.*;
Run Code Online (Sandbox Code Playgroud)

我不能说完全使用开始导入是一个好习惯。大多数编码指南建议避免它。子类明星导入不是您通常会在代码中遇到的东西。