小编典典

为什么在 Java 导入语句中使用通配符不好?

all

使用像这样的单个语句更方便、更简洁

import java.awt.*;

而不是导入一堆单独的类

import java.awt.Panel;
import java.awt.Graphics;
import java.awt.Canvas;
...

import在语句中使用通配符有什么问题?


阅读 112

收藏
2022-03-11

共1个答案

小编典典

唯一的问题是它使您的本地命名空间变得混乱。例如,假设您正在编写一个 Swing
应用程序,因此需要java.awt.Event,并且还与公司的日历系统交互,该系统具有com.mycompany.calendar.Event.
如果您使用通配符方法导入两者,则会发生以下三种情况之一:

  1. java.awt.Event您在and之间存在彻底的命名冲突com.mycompany.calendar.Event,因此您甚至无法编译。
  2. 你实际上只导入了一个(只有你的两个导入中的一个.*),但它是错误的,你很难弄清楚为什么你的代码声称类型是错误的。
  3. 当你编译你的代码时没有com.mycompany.calendar.Event,但是当他们后来添加一个时,你以前有效的代码突然停止编译。

显式列出所有导入的好处是我可以一眼看出您打算使用哪个类,这使得阅读代码变得更加容易。如果你只是做一件快速的一次性事情,没有什么明显的 错误
,但未来的维护者会感谢你的清晰说明。

2022-03-11