用Java重构Import语句

时间:2016-07-21 09:18:18

标签: java import

我在许多Java程序中的公共包中有太多常见的import语句。如何分解导入语句并使代码看起来小而整洁。例如:

JavaProgram1.java

package commonPackage;
import javaPackage1;
import javaPackage2;
...
import javaPackageN;
....
[Code]

JavaProgram2.java:

package commonPackage;
import javaPackage1;
import javaPackage2;
...
import javaPackageM;
....
[Code]

现在我想要的是,我想在Java中使用函数或宏类型的东西,其中使用单个语句我想要导入所有包,这样我就可以在所有程序中使用相同的封装

3 个答案:

答案 0 :(得分:1)

执行此操作的唯一方法是导入的类是否在同一个包中。

让我们说你有

import org.foo.package1.X;
import org.foo.package1.Y;
import org.foo.package1.Z;

您可以使用*导入org.foo.package1中的所有类,如:

import org.foo.package1.*;

但在这种情况下,您将导入org.foo.package1中的所有类,这会降低可读性

答案 1 :(得分:1)

首先要注意:不要过于担心。这种情况经常发生,您的IDE会将其从显示器中删除,这样您就不会浪费一半的屏幕。话虽如此,您通常可以轻松地使进口量变小

我假设您必须处理代码树

  • 请记住,不要让课程太大。将目标(关注点)分成不同的类,并将这些提取的类与其所需的导入一起使用。可以扩展和/或使用新创建的类,并且在从中提取的类中不需要该新类的依赖类。
  • 如果A类需要B类,A类不需要B类,那么将B类保存在同一个包中,并且不需要为它编写(生成)导入。
  • 如果(几乎)您的类需要导入整个包,您可以编写import this.important.package.*并导入所有包。您的IDE可能会优化您的导入,并将这一行重写为几个不同的导入,然后您回到原来的位置。
祝你好运:)

答案 2 :(得分:1)

说真的,你不要手动这样做。

任何体面的IDE都提供了为您做到这一点的方法(例如,在eclipse中,您只需键入ctrl-o来组织导入)。所以你很容易习惯于不时地按下ctrl-o。或者,如果这是一个选项,则配置eclipse以在每次保存时组织导入。这些策略可以扩展为运行内置格式化程序。

这个想法基本上是:你肯定想在这里使用某种工具。 “组织进口”是一项任务,你作为一个人不想浪费一秒钟。

另一个重要方面:确保可能必须修改源代码的所有人都同意该工具 - 您只是想避免包含大量增量的更改历史记录,因为人们在这里使用不同的工具

您甚至可以更进一步,并使用您的构建环境为您执行此操作(以便它在后台真正自动发生),例如https://github.com/ajoberstar/gradle-imports

相关问题