2012-08-13 56 views
2

比方说,我有以下结构:导入Java类

  • src.main.java
    • 第一
      • one.java
      • two.java
      • three.java
    • second
      • alpha.java
      • beta.java
      • gamma.java

我想从first包中的所有类中的所有类在我second包进口。

现在我只是在second包指定为每类:

import first.*; 

我可以导入一次所有类的包?

+0

我看不到你真正想要做什么。为什么你想要在第二个包的每个类的开始处摆脱通配符导入? – 2012-08-13 12:02:05

+0

@AlexandreDupriez问题不在于为什么。 :)我问过这是否可能。我已经收到答案,谢谢。 – 2012-08-13 12:07:19

回答

5

不,这是做不到的。

我不明白为什么这是如此的困难。

更好的解决方案是使用IDE,可以根据需要添加导入。

我还建议拼写每一个单独而不是使用星号,即使您需要导入所有这些。它更好地记录你的意图,并且IDE可以让你对它透明。

+0

谢谢你的快速回答。我会牢记这一点。 – 2012-08-13 12:04:35

2

不,你不能那样做在Java中

您可能会想到的一件事是将课程从second包移到first,因此您不需要导入。但我明白,这并非总是可行/可取的。

+0

谢谢。有时它可能有帮助。 :) – 2012-08-13 12:05:45

1

我可以为包中的所有类导入一次吗?

不,你不能。进口仅适用于 类别 源文件,其中声明了它们。

也许我可以用import语句创建一些超类,然后每次都扩展它?

这只有在子类中的代码根本没有提及外部类型的名称时才有效......这是很少可能的。

正如我所说的进口只适用于 源文件他们宣布。


实际上,import是故意设计的这样工作。这个想法是让您轻松找出类名引用的类。 (如果你不使用明星进口,它效果最好......)

+0

也许我可以用import语句创建一个'superclass',然后每次都“扩展”它? – 2012-08-13 12:01:52

+0

对不起,这太荒谬了。做进口并克服它。 – duffymo 2012-08-13 12:10:13

+0

@duffymo无需道歉。 :) 我只是问问。我明白以这种方式延伸是非常不可取的。 – 2012-08-13 12:12:37