例如,第三方库对包使用非常复杂的目录结构。 我可以一次导入它们吗?明星似乎只能导入一个目录级别。
答案 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包中的所有类。