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