例如,在java中从IO包导入类时,我们使用import java.io.*
,而不是为什么我们不能使用import java.io
作为import语句?当我使用import java.io
时,我收到错误说明位置:package java
。为什么抛出这个错误?
答案 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 matching
,Ant
等。
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 java.io.*;
答案 6 :(得分:1)
import java.io;
表示从包class io
导入java
。但是io
类不存在。 java.io是一个包,而不是一个类。