0

如果我只声明import java.util.*;,那么我不能使用入口类,它在入口类错误“找不到符号”的入口类下面的代码处引发编译时异常

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.*;

4

1 回答 1

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 Abstract Window Toolkit)用于许多相关包以使关系明显,但不显示包含。

导入 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.*;

为了更清楚,您可以参考此链接

于 2018-11-24T09:18:58.893 回答