前言
日常开发中,我们在编码过程中会经常忽略import 包的问题,我们会使用import语句中的通配符*来引入整个包中的所有类。尽管这样做能够简化代码编写和阅读,但是过度使用import *也会带来一些坏处,本文将探讨这些问题并给出相应的解决方案。
问题剖析
在讨论import *的坏处之前,让我们先来看一下Java代码中的包引入机制。Java中使用import语句来告诉编译器我们希望在代码中使用其他包中的类。一般来说,我们可以使用以下两种方式来引入包中的类:
- 显示引入:使用import语句引入特定的类,例如import java.util.Map;。
- 通配符引入:使用import语句引入整个包中的所有类,例如import java.util.*;。
对于较小的项目来说,使用import *可能不会带来太大的问题。但是在大型项目中,使用import *可能导致以下几个问题:
1、命名冲突:当引入多个包时,可能会出现类名相同的情况,这时编译器将无法确定使用哪个类,从而导致编译错误。
2、可读性降低:通常情况下,我们会根据类的包名来判断其功能。但是使用import *后,编译器无法提供这样的信息,使得代码的可读性大大降低。
3、冗余引入:使用import *会导入整个包中的所有类,但是实际上我们可能只需要其中的几个类。这样就会导致代码中引入了很多不需要的类,增加了代码量。
4、编译时间延长:使用import *会导致编译器需要处理更多的类,从而增加了编译的时间。
解决
说了这么多,那我们要如何去尽可能规避这个问题呢?
一般来说我们是用工具或流程进行解决。
这里用idea作为说明,通过如下设置让 IDEA 不会在导入时添加*,这样设置其实并不是一定不会变成 import xxx.*,而是在同包类大于 999 个时才使用