为什么我们在从java中的包中导入类时使用*?

时间:2014-05-06 08:24:50

标签: java

例如,在java中从IO包导入类时,我们使用import java.io.*,而不是为什么我们不能使用import java.io作为import语句?当我使用import java.io时,我收到错误说明位置:package java。为什么抛出这个错误?

7 个答案:

答案 0 :(得分:12)

您只能导入不是包的类。 import java.io.*将导入java.io

中的所有类

要导入特定包中包含的所有类型,请使用带有星号(*)通配符的import语句。

现在,您可以通过简单名称引用包中的任何类或接口。

注意:另一种不太常见的导入形式允许您导入封闭类的公共嵌套类。例如,如果graphics.Rectangle类包含有用的嵌套类(如Rectangle.DoubleWide和Rectangle.Square),则可以使用以下两个语句导入Rectangle及其嵌套类。

import graphics.Rectangle;
import graphics.Rectangle.*;

请注意,第二个import语句不会导入Rectangle。

see此页面了解更多信息

答案 1 :(得分:2)

这只是语法问题。如果您了解如何导入特定类:

import java.util.List;

在所有其他环境中使用星号*来表达从某个包中导入所有内容的一致性:pattern matchingAnt等。

import java.util.*;

星号的历史可以匹配"一切"。

由于约定而不是任何Java限制,您将无法区分子包io和名为io的类。如果您将一个类命名为不以大写字母开头,则不会出现编译错误。

答案 2 :(得分:2)

在Java中,您可以导入类和包。要导入类,可以使用类的完全限定名称,如

import com.pkg.spkg.ClassName;

spkg可能包含很多类,您需要在应用程序中使用所有类。在这种情况下,好主意是导入所有类或包本身。因此,要导入整个包,我们可以使用通配符*,如

import com.pkg.spkg.*;

希望这说清楚。

答案 3 :(得分:1)

import java.io.*将导入io包中的所有类。 io是包的名称,您只需要导入类。

您也可以只导入所需的类。例如:import java.io.BufferedInputStream

查看java.io个文档,找到java.io包中定义的所有类。

另请查看tutorial for packages,了解java中的所有软件包。

答案 4 :(得分:1)

使用* on

import java.io.*

将导入io目录中的每个类,您将无法导入目录。

答案 5 :(得分:1)

第二个语句将io视为类,而不是包。这就是错误的原因。您应仔细阅读并使用Java命名约定来正确命名您的类。

如果要使用java.io包类

,请正确使用import语句
import java.io.*; 

答案 6 :(得分:1)

import java.io;表示从包class io导入java。但是io类不存在。 java.io是一个包,而不是一个类。