At first, packages appear to be hierarchical, but they are not. For
example, the Java API includes a java.awt package, a java.awt.color
package, a java.awt.font package, and many others that begin with
java.awt. However, the java.awt.color package, the java.awt.font
package, and other java.awt.xxxx packages are not included in the
java.awt package. The prefix java.awt (the Java Abstract Window
Toolkit) is used for a number of related packages to make the
relationship evident, but not to show inclusion.
# 1 楼答案
它不像你所想的那样,当你想使用^ {CD1>}接口时,你可以做^ {< CD2>}或^ {CD3>},但是你不能使用^ {CD4>},这就是为什么你不能^ {CD5>}
# 2 楼答案
因为
import some.example.Type;
只用于导入类型而不是包import some.example.*;
意味着您正在导入some.example
包中包含的所有类型,而不是其中的其他包这是因为导入意味着该文件的代码在运行时可供您的程序使用,而包本身不包含任何代码。它包含包含代码的文件
这就是为什么不能在一个import语句中导入所有内置代码。你最多可以在一条语句中导入一个包中不同文件中的所有代码,你知道
import some.example.*;
# 3 楼答案
java中没有子包这样的东西
java.util.stream
不是java.util
的子包因此
import java.util.*
不会导入java.util.stream
的类要导入所有内置类,必须一次导入一个包。不过,最好只导入实际需要的类
# 4 楼答案
正如您在这篇关于Oracle文档的link中所读到的,在标题包的明显层次结构下:
# 5 楼答案
在导入类时使用通配符可能会使类名称空间变得混乱,因此如果在多次导入中有一个名为
ClassA
的类(例如导入com.example1.*
和导入com.example2.*
,其中ClassA
在这两者中都有定义,并且只需要com.example1
中的实现),则会发生冲突,因此只导入真正需要使用的内容大多数IDE都允许您轻松地组织导入,以便只导入真正需要使用的类
# 6 楼答案
你可以导入java。util.*它可以很好地工作,但当您导入特定类而不是所有类时,导入所需的时间会减少,但如果您从同一个包中导入太多类,则可以使用包导入所有类。*jvm获取数据所需的时间比逐个获取数据所需的时间更短
按照惯例,您可以使用导入包。*如果使用同一个包中的类太多