在Java工程结构里,源码根目录下的Java类是处于默认包下,不显示包名。
潜在的问题是,导入默认包的某个类(主要指静态导入)非常麻烦。例如,导入默认包下的Test类中的TEST常量,应该写成import static Test.TEST
,但这样还是会报错。
StackOverflow上有一个问题 How to import a class from default package,获得Accept的答案告诉我们:从未命名的包中导入类型是编译时错误,必须通过反射或其他间接方法访问该类。
一味地使用默认包不是Java所推崇的,不利于命名空间的区分。最好的解决方法是启用自定义包命名结构。