为什么必须导入内部类?

时间:2014-02-07 22:58:36

标签: java import ide

在任何IDE中,当使用包中的类并且我需要使用另一个类中的类时,我必须导入它。为什么IDE不会自动导入包,因此不需要手动执行?

3 个答案:

答案 0 :(得分:2)

因为有时不同的类具有相同的“短”名称,因此IDE不知道您的意思。例如,如果将代码复制粘贴到包含Date的IDE中,则无法知道您是java.sql.Date还是java.util.Date。在这些情况下,IDE将允许您从具有该名称的所有可用类中进行选择。

答案 1 :(得分:0)

首先,在Eclipse中,您可以使用 Ctrl - SHIFT - O 自动导入您需要的任何内容。

来自java package tutorial

  

为方便起见,Java编译器自动导入两个完整的   每个源文件的包:(1)java.lang包和(2)   当前包(当前文件的包)。

IDE将不会导入所有包,因为1.

  1. 您可能不需要它们,为什么要导入它们?
  2. 更重要的是,您可以使用相同名称的不同包中的类,这将导致名称歧义。
  3.   

    如果一个包中的成员与另一个包中的成员共享其名称   包和两个包都是导入的,你必须引用每个成员   通过其合格的名称。例如,图形包定义了一个   名为Rectangle的类。 java.awt包还包含一个Rectangle   类。如果已导入图形和java.awt,则执行以下操作   很暧昧。

    这会导致不必要的头痛,确保您始终指的是正确的包裹。通过自己导入包和类,您可以确保始终使用您想要的特定类。

答案 2 :(得分:0)

这是我的想法。这样想,

假设您在这样的不同包中有两个具有相同名称的类,那么IDE如何解析包导入?它如何知道要导入哪个SendFormAction? 所以通常IDE会给你一个导入包的选项[在eclipse IDE中使用cntrl + shift + O] 如果有混淆,它会问你要导入哪一个。

com.xyz.action [package]
SendFormAction.java

com.abc.action [package]
SendFormAction.java