当前位置: 首页 > 面试题库 >

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

傅自明
2023-03-14
问题内容

看一下这个.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和其他几个班?


问题答案:

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

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

java.langjavadoc:

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

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

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



 类似资料:
  • 我试图导入PyAudio,但它总是给我一个错误。如果我的电脑有问题,我使用的是Windows64x和Python3.9.4。以下是错误:

  • 问题内容: 我目前正在使用Deitel的书《 Java How to Program》第8版(早期对象版本)学习Java。 我在有关创建类和方法的章节中。 但是,我对那里提供的示例感到非常困惑,因为它包含两个单独的.java文件,并且当其中一个使用另一个方法时,它没有导入该类。它只是从另一个.java文件创建了该类的对象,而没有先导入它。 这是如何运作的?为什么我不需要导入? 这是本书中的代码(我

  • 我和同事一起创建了一个Angular 5应用程序。我为我的所有界面创建了一个文件夹,并按功能进行分组。然而,我没有在它们上包含任何导出符号,并且在使用它们时,我从不需要导入它们……它们只存在,不会产生任何编译错误。我喜欢这种方式,因为它使代码更干净,但我只是在利用一些bug吗?我的同事以“正确”的方式完成了它,并且需要在任何时候导入他想要使用的界面。有什么想法吗?您应该如何创建存在于单独文件中的接

  • 问题内容: 建议不要中使用。 可以分享原因,以便下次避免这样做吗? 问题答案: 因为它将很多东西放到你的命名空间中(可能会遮盖以前导入的其他对象,你对此一无所知)。 因为你不完全知道要导入的内容,而且不容易找到从哪个模块导入的特定内容(可读性)。 因为你不能使用像静态检测代码中的错误之类的出色工具。

  • 有这样一个应用程序结构,其中是根目录,“app”和“package1”是两个并行包: *注意:最后一个位于根目录“myapp”中 如何解决ImporDerror:尝试在没有已知父包的情况下进行相对导入 我想应用“解决方案1”,但不明白我应该把main.py放在哪里,它的内部代码是什么,或者相反,它可能是像这样的空文件