Java是否支持对导入进行分组,如下所示:
import package.{Class1,Class2}
我知道*
运算符会导入子包,但我想导入特定的包。
在Rust
或某些现代语言中受支持,如下所示:
use package::{Class1, Class2};
除了像这样逐行写每个导入外,还有其他选择吗?
import package.Class1;
import package.Class2;
答案 0 :(得分:2)
Java语言规范的7.5. Import Declarations部分显示:
导入声明允许使用由单个标识符组成的简单名称(§6.2)来引用命名类型或
static
成员。[...]
如您所见,它是单个命名类型,或者是所有可访问类型。类型的列表没有语法。
旁注:我几乎从不看代码中的import
语句。我让Eclipse为我自己管理(源>组织导入...(Ctrl + Shift + O)),所以我真的不关心有很多单类型导入语句。无论如何,包含导入的部分都已折叠,因此我什至不必滚动过去。哦,喜欢使用优质的IDE 。
答案 1 :(得分:1)
不。 Java没有使用一个语句导入一组选择类的结构。您可以从包中导入所有类型,也可以一个一个地导入它们。
使用*
可让您从同一包中导入所有类(而不是您提到的那样导入子包):
import package.*; //Both Class1 and Class2 are imported
import static package.Class1.* //All static members of Class1 are imported
通常不建议使用第一种形式import package.*
,因为名称冲突的可能性增加(来自不同软件包的相同类名)。 import package.{Class1,Class2}
可能会提供帮助,但是Java中没有这样的构造。
答案 2 :(得分:1)
在Java中,仅支持的导入多个类的方法如下:
A-导入单个类
import package.Class1;
import package.Class2;
B-在包或子包中导入所有类
import package.*;
import package.subpackage.*;
有关更多信息,请参考Oracle文档:https://docs.oracle.com/javase/tutorial/java/package/usepkgs.html