小编典典

为什么我不必导入一些类?

java

看一下这个.java文件:

class A {
    HashMap a;
}

它不编译;我需要import java.util.HashMap;。现在考虑这一点:

class A {
    String a;
}

完全一样,只是用String代替HashMap,所以不应该编译,对吧?错误。

好的,所以不必导入是众所周知的String,但是 为什么
呢?“明显”的答案是因为String它的使用频率远高于HashMap,但是不ArrayList应该“隐式导入”吗?原始包装器类,例如IntegerBoolean呢?ArrayList
远远 往往比LongFloat,但我必须进口ArrayList,并不需要进口Float

什么是落后不需要对进口的原因StringIntegerCharacterException和其他几个班?


阅读 229

收藏
2020-11-30

共1个答案

小编典典

明显的答案是因为String它的使用频率远高于HashMap

编号String属于java.lang软件包,由编译器自动导入。

java.langjavadoc:

提供对Java编程语言的设计至关重要的类。最重要的类是Object,它是类层次结构的根,而的Class实例则表示运行时的类。

并且来自Java语言规范。第7章包装

一个包由许多编译单元组成(第7.3节)。编译单元自动访问其软件包中声明的所有类型,并且还自动导入public预定义软件包中声明的所有类型java.lang

2020-11-30