太多的导入正在向我的 Java 代码发送垃圾邮件

2022-09-01 09:30:37

在我的项目中,我有一个包,其中包含我为图形程序设计的形状,例如,矩形圆形。我还有一两个与类同名的包。shapesjava.awt

现在,由于我不想重命名代码库中的每个类,因此当我声明一个新的矩形时,为了向我的源文件显示我指的是哪个类,我需要:

1-显式导入矩形类,即导入形状。矩形

2-仅导入我需要的java.awt类,而不导入java.awt.*,它自动包含awt。矩形

现在的问题是,这两种方式都会导致大量的导入。我目前在每个源文件中平均有15-25个导入,这严重使我的代码混乱和混乱。

代码中的导入过多是一件坏事吗?有没有办法解决这个问题?


答案 1

是的,过多的导入是一件坏事,因为它会使代码混乱,并使导入的可读性降低。

通过使用通配符避免使用长导入列表。

Kevlin Henney 在他的演讲中谈论这个确切的堆栈溢出问题 27:54 干净的编码员讨厌当你使用这些企业编程技巧时你的代码会发生什么 NDC 伦敦 16-20 Jan 2017


答案 2
  • 如果使用 glob 导入,则可能仅通过更新引入新类型的依赖项(通常不会是重大更改)来中断代码与命名空间冲突。在一个大型代码库中进行修复可能是一件痛苦的事情,这些代码库是自由的,他们使用glob导入。这是我能想到的最有力的原因,为什么显式指定依赖项是一个好主意。
  • 阅读指定了每个导入的代码更容易,因为您可以看到类型的来源,而无需IDE特定的功能和鼠标悬停,也不需要浏览大页面的库文档。许多人在IDE之外阅读了很多代码,包括代码审查,差异,git历史记录等。