为什么使用带有Java import语句的通配符不好?

问题:

使用单个语句更方便和更干净

import java.awt.*;

比进口一堆单独的课程

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

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

回答:

唯一的问题是它会混淆你的本地命名空间。例如,假设您正在编写一个Swing应用程序,因此需要java.awt.Event,并且还与公司的日历系统(1)进行了接口。如果您使用通配符方法导入,则会发生以下三件事情之一:

  1. 你在java.awt.Eventcom.mycompany.calendar.Event之间有一个彻底的命名冲突,所以你甚至不能编译。
  2. 您实际上只管理一个(只有您的两个导入中只有一个.*),但这是错误的,您很难找出为什么您的代码声称该类型是错误的。
  3. 当你编译代码时,没有com.mycompany.calendar.Event,但是当他们以后添加一个你以前有效的代码时,会突然停止编译。

明确列出所有进口的优点是,我可以一眼就知道你打算使用哪个类,这样就可以轻松读取代码。如果你只是做一个快速的一次性事情,没有明确的wrong,但是未来的维护者会感谢你的清晰度。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Why is using a wild card with a Java import statement bad?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

4 + 4 =