星号导入是否包含Java中的子包?

Kri*_*ian 3 java package

当您像这样声明导入时:

import com.microsoft.azure.storage.*;
Run Code Online (Sandbox Code Playgroud)

这是否也包括其子包中的所有内容?例如,它包括这个吗?

import com.microsoft.azure.storage.blob.*
Run Code Online (Sandbox Code Playgroud)

如果没有,为什么不呢?(编辑:“为什么”问题基本上脱离了主题。在考虑正确答案时忽略这一点。)

Rob*_*sen 5

不,不是的。它只导入包中的所有内容(即目录本身)。子目录被视为不同的包,因此您需要:

import com.microsoft.azure.storage.*
import com.microsoft.azure.storage.blob.*
Run Code Online (Sandbox Code Playgroud)

至于为什么语言设计者选择走这条路,人们只能猜测,但他们决定采用的系统确实允许采用更细粒度的方法。