在Java中的Import语句中使用*

时间:2013-02-15 15:02:35

标签: java import

有人可以用Java解释我的import语句。有些导入有*后缀,有些没有。这两者有什么区别?在import语句中使用*是否导入所有类?

import

他们在这里说过,尽管导入语句似乎是嵌套的,但事实并非如此。 有人可以详细解释一下吗?

4 个答案:

答案 0 :(得分:7)

使用*被认为是一种不好的做法。它用于导入该包中的所有文件。更正确的方法是列出您需要的每个类,特别是在您在IDE之外进行代码审查并需要知道您正在使用的类的哪个版本的情况下。从本质上讲,它会在开发团队中产生懒惰。

评论

对于那些认为这不是我所说的“坏”做法的人。你怎么能说这是一个好习惯呢?

import java.util.*;  
import java.io.*;

即使编译器忽略了*下除了导入的List之外的所有内容,这对于将来查看代码的人有何帮助?我认为这里有很多人忘记你是在为人而不是计算机编写代码。当Java消失并且您正在使用SuperAwesomeLanguage时,您怎么可能转换此代码?鉴于以下示例,如果您对java有零的知识,请将其转换为您的新语言:

public class Foo  
{
    private List list;
}

List中有io吗?即使需要io?问题是你不知道。因此,通过明确,您可以指导未来的开发人员,了解所需的类。

答案 1 :(得分:1)

  

在import语句中使用*是否导入所有类

From Oracle's Documentation :

  

按需输入类型声明允许所有可访问类型的a   根据需要导入的命名包或类型。

答案 2 :(得分:1)

从您的链接:

  

import java.util。*;

     

*是一个与任何匹配的“正则表达式运算符”   人物组合。因此,这个import语句会   导入java.util中的所有内容。如果您已尝试进入并运行   在上面的示例程序中,您可以将import语句更改为此   之一。

所以是* suffix导入此路径中的所有类

答案 3 :(得分:1)

import com.example.*

导入com.example包中的所有类

import com.example.ClassName

只导入ClassName类