2015-08-24 26 views
2

如果在import java.**包含所有的包,那麼爲什麼要寫import java.lang.*import java.util.*「import *」如何在Java中工作?

+0

僅限類。如果你使用'import static',它會導入一個類的靜態成員。 –

+0

java。*將只包含java文件夾中的類而不包含在其子文件夾中,因此您必須指定子文件夾中的類 – Raghavendra

+0

可能重複的[爲什麼在Java導入語句中使用通配符錯誤?](http: //stackoverflow.com/questions/147454/why-is-using-a-wild-card-with-a-java-import-statement-bad) – Bikku

回答

3
import packagename.*; 

導入所有類,接口等。從包packagename,但不包括「子包」,即import java.*;java包導入所有類,但從java.util沒有類。由於java包中沒有任何類,因此使用import java.*不會導入任何內容。

1

即使通常包映射到文件系統目錄,包之間也沒有層次關係。一個包com.initech不是com.initech.tps的父親,它們是兩個獨立的包,它們之間沒有任何關係。你不能用通配符引用多個子包,因爲就編譯器而言,不存在「子包」之類的東西。 java.lang是一個包,java.util是一個包,但java不是一個包。

0

讓我們舉個例子 假設你有一個包叫做基地。而且裏面你有呼包child1 .. 基礎包也有it..b1和B2 兩個階級,您的child1包也有一些class into it..c1,c2 .. 然後當你編寫 進口基地。* 它只導入基類包的類,即b1和b2不是子包類... 而你寫的時候 import base.child1 。* 它導入child1包中的所有類....