繁体   English   中英

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

[英]For Java, can I import all packages at once?

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

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

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

然后答案是否定的 你可以做的最广泛的导入是一个带星星的单一包。

JLS(第7.5节) 定义了import语句的结构。

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

否则,如果该名称的类型由编译单元的多个type-import-on-demand声明声明,则该名称作为类型名称是不明确的; 发生编译时错误。

正如您在java中指出的那样,您只能使用“*”使用的“一级”导入

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

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

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

(是的,不久前发生在我身上的事情......这是一个痛苦,因为我不得不寻找重建的库源代码。)

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

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

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

在IntelliJ Ctrl + Alt + O快捷方式可以帮助:

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

您还可以在“设置→编辑器→常规→自动导入”下调整自动导入设置

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

   import java.*;
   import javax.*;

*适合所有人

   java.*;

java包中的所有类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM