有人可以用Java解释我的import语句。有些导入有*后缀,有些没有。这两者有什么区别?在import语句中使用*是否导入所有类?
他们在这里说过,尽管导入语句似乎是嵌套的,但事实并非如此。 有人可以详细解释一下吗?
答案 0 :(得分:7)
使用*
被认为是一种不好的做法。它用于导入该包中的所有文件。更正确的方法是列出您需要的每个类,特别是在您在IDE之外进行代码审查并需要知道您正在使用的类的哪个版本的情况下。从本质上讲,它会在开发团队中产生懒惰。
评论
对于那些认为这不是我所说的“坏”做法的人。你怎么能说这是一个好习惯呢?
import java.util.*;
import java.io.*;
即使编译器忽略了*
下除了导入的List
之外的所有内容,这对于将来查看代码的人有何帮助?我认为这里有很多人忘记你是在为人而不是计算机编写代码。当Java消失并且您正在使用SuperAwesomeLanguage时,您怎么可能转换此代码?鉴于以下示例,如果您对java有零的知识,请将其转换为您的新语言:
public class Foo
{
private List list;
}
List
中有io
吗?即使需要io
?问题是你不知道。因此,通过明确,您可以指导未来的开发人员,了解所需的类。
答案 1 :(得分:1)
答案 2 :(得分:1)
从您的链接:
import java.util。*;
*是一个与任何匹配的“正则表达式运算符” 人物组合。因此,这个import语句会 导入java.util中的所有内容。如果您已尝试进入并运行 在上面的示例程序中,您可以将import语句更改为此 之一。
所以是* suffix导入此路径中的所有类
答案 3 :(得分:1)
import com.example.*
导入com.example包中的所有类
import com.example.ClassName
只导入ClassName类