对于Java,我可以一次导入所有包吗?

时间:2011-03-15 22:48:58

标签: java

例如,第三方库对包使用非常复杂的目录结构。 我可以一次导入它们吗?明星似乎只能导入一个目录级别。

6 个答案:

答案 0 :(得分:18)

假设您在询问是否可以执行以下操作:

import com.example.*;
// expecting packages like com.example.foo.* and com.example.bar.* to be imported

然后答案是。你可以做的最广泛的进口是一个有明星的单一包。

JLS(第7.5节)defines导入语句的结构。

此外,编译器一次导入一堆包也是有问题的。如果两个包提供相同的类型,两者都被导入,并且类在类中使用,则会发生编译时错误。这在JLS 6.5.5.1

中有所描述
  

否则,如果该名称的类型是   由多个人宣布   按类型导入按需声明   编译单元,然后名称是   作为类型名称含糊不清;一个   发生编译时错误。

答案 1 :(得分:3)

正如您在java中所指出的,您只能使用“*”

使用的“一级”导入

更有效的方法是打开Eclipse,打开应该导入的类并按:CTRL + SHIFT + O :) - 现在所有IDE都有助于组织导入

答案 2 :(得分:3)

我强烈建议,正如其他人所做的那样,您使用IDE中的“组织导入”(大多数主要的Java IDE都会这样做)。

另外,我建议不要在导入中使用“*”,原因很简单。在某些时候,您可能希望升级导入的库之一(或jdk),并且由于包中的某些新类,最终可能会出现名称冲突(对于静态导入尤其如此)。如果在当前项目中的某个类中发生这种情况可能不是什么大问题,但如果您在某个时候将该代码放入库中,则可能会出现问题,因为在调整冲突的导入后您将不得不重新编译该类。

(是的,不久前发生在我身上的事情......因为我不得不寻找重建的图书馆源代码而感到痛苦。)

在路上省去一些麻烦。 :d

答案 3 :(得分:0)

在JSP的情况下,我可以使用.inc文件从java类中的第三方库导入所有必需的类

答案 4 :(得分:0)

您只能导入一个目录级别。

在IntelliJ中,Ctrl + Alt + O快捷键可以帮助:

  • 组织现有导入
  • 删除不需要的导入
  • 添加所需的导入

您还可以调整"设置→编辑器→常规→自动导入"

下的自动导入设置

答案 5 :(得分:0)

仅限基本用法您可以使用:

   import java.*;
   import javax.*;

*适用于所有

   java.*;

java包中的所有类。