这个问题已经在这里有一个答案:
- 为什么使用通配符与Java导入语句不好? 14个回答
有人可以解释我在Java中的import语句。 一些进口已经*后缀,以它和一些没有。 什么是这两者之间的区别? 是否在import语句进口的所有类使用*的?
看到这里进口
在这里,他们都表示,虽然import语句似乎嵌套它们并非如此。 详细有人能解释一下吗?
这个问题已经在这里有一个答案:
有人可以解释我在Java中的import语句。 一些进口已经*后缀,以它和一些没有。 什么是这两者之间的区别? 是否在import语句进口的所有类使用*的?
看到这里进口
在这里,他们都表示,虽然import语句似乎嵌套它们并非如此。 详细有人能解释一下吗?
使用*
被认为是不好的做法。 它是用来导入包中的所有文件。 这样做的更正确的方法是关闭列出每一个你需要的类的,特别是在这样一个场景,你正在做代码审查的IDE之外,需要知道你使用的是哪个版本的类。 本质上,它滋生懒惰的开发团队。
评论
对于那些争论,这不是一个“坏”的做法,因为我已经指出。 你怎么可能说这是一个很好的做法?
import java.util.*;
import java.io.*;
即使编译器忽略下的所有*
除了List
您已经导入,这如何可能帮助找人在未来的代码? 我觉得这里的人一个很好的协议忘记你是人类,而不是电脑编写代码。 此外,当Java的消失你怎么可能把这段代码转换并且使用的是SuperAwesomeLanguage? 鉴于当你的java的零知识下面的示例中,请将此转换为新的语言:
public class Foo
{
private List list;
}
是List
中的io
? 在io
甚至要求? 问题是你不知道。 因此,通过显式说明你可以指导未来开发商以需要什么类。
是否使用*的import语句进口的所有类
是。
从甲骨文的文档:
A型导入点播声明允许所有可访问的类型命名包或类型的如需要进口。
从你的链接:
进口的java.util。*;
*为一个“正则表达式运算符”,将字符的任意组合搭配。 因此,这个import语句将导入java.util中的一切。 如果您曾经试图进入和运行上面的例子程序,可以改变import语句这一个。
所以,是*后缀进口的所有类此路径
import com.example.*
进口量com。示例包中的所有类
import com.example.ClassName
进口只是类名类