正在导入 Java 个包
Importing Java Packages
假设我有以下包层次结构
包 alpha -> 包 beta -> 包 gamma
-> 表示 gamma 在 beta 内,beta 在 alpha 内。
我的问题是:
假设如果我写
import alpha.*;
- 这是在 beta 和 gamma 中导入 类 还是仅导入 alpha 中的 类?
不,只会导入 alpha
中的 类,要导入所有 3 个,您需要:
import alpha.*;
import alpha.beta.*;
import alpha.beta.gamma.*;
正如评论和epoch的回答已经说明的那样,只会导入命名包中的类。了解为什么会这样很重要。
看看 java.util 包。仅在一个包中就有很多 类 和接口可用。仅在该包中就有很多 类。如果您导入 java.util.*
,您将导入所有 classes/interfaces。这已经相当臃肿了。
现在想象调用 import java.util.*
递归导入所有包。现在您还需要添加在以下位置找到的所有 类:
- java.util.concurrent
- java.util.jar
- java.util.logging
- java.util.prefs
- java.util.regex
- java.util.spi
- java.util.zip
那是 吨 你不需要的东西!!!
假设我有以下包层次结构 包 alpha -> 包 beta -> 包 gamma
-> 表示 gamma 在 beta 内,beta 在 alpha 内。
我的问题是: 假设如果我写
import alpha.*;
- 这是在 beta 和 gamma 中导入 类 还是仅导入 alpha 中的 类?
不,只会导入 alpha
中的 类,要导入所有 3 个,您需要:
import alpha.*;
import alpha.beta.*;
import alpha.beta.gamma.*;
正如评论和epoch的回答已经说明的那样,只会导入命名包中的类。了解为什么会这样很重要。
看看 java.util 包。仅在一个包中就有很多 类 和接口可用。仅在该包中就有很多 类。如果您导入 java.util.*
,您将导入所有 classes/interfaces。这已经相当臃肿了。
现在想象调用 import java.util.*
递归导入所有包。现在您还需要添加在以下位置找到的所有 类:
- java.util.concurrent
- java.util.jar
- java.util.logging
- java.util.prefs
- java.util.regex
- java.util.spi
- java.util.zip
那是 吨 你不需要的东西!!!