如果我仅声明import java.util.*;
,则无法使用Entry类,这会在Entry Class的以下代码中引发编译时异常
输入类出现错误“找不到符号”
Set<Entry<String, Integer>> ent = map1.entrySet();
for(Entry<String,Integer> key: ent){
System.out.println(" count : "+key.getValue()+" : "+key.getKey() );
}
但是如果我这样声明如下
import java.util.*;
import java.util.Map.Entry;
现在它将不会引发任何编译时错误。为什么会这样?
所以我的问题是:为什么我们已经声明了“ import java.util.Map.Entry;
”
import java.util.*;
答案 0 :(得分:1)
起初,程序包看起来是分层的,但不是。
例如,Java API包括java.awt包,java.awt.color包,java.awt.font包以及许多其他以java.awt开头的包。
但是,java.awt.color软件包,java.awt.font软件包和其他java.awt.xxxx软件包未包含在java.awt软件包中。前缀java.awt(Java抽象窗口工具包)用于许多相关的软件包,以使关系显而易见,但不显示包含关系。
导入java.awt。*会导入java.awt包中的所有类型,但不会导入java.awt.color,java.awt.font或任何其他java.awt.xxxx包。
如果计划使用java.awt.color中的类和其他类型以及java.awt中的类和其他类型,则必须导入两个包及其所有文件:
import java.awt.*;
import java.awt.color.*;
为更清楚起见,您可以参考此link