2012-08-28 21 views
0

如何在下面的代碼中提及班級的路徑?如何提及班級路徑

Class cl=Class.forName("SomeClass"); 

這種運作良好,如果「SomeClass的」位於調用類的同一目錄下。但是如何從一個不同的目錄中檢查一個班級,我看到的語法就像xxxx.yyyy.class,但是無法確定那些'x'和''是什麼意思。請幫忙。 在此先感謝。

回答

3

使用fully-qualified class name.例如,與Java SE String類,這是在java.lang包來完成:

Class clazz = Class.forName("java.lang.String"); 
+0

我的「SomeClass」位於「E:\ java \ My Works \ BankAccounts \ src \ bkac」,bkac是包名。現在,如何在位於「E:\ java \ My Works \ Inheritance \ src」的類中調用它? –

+0

「繼承」下的類的類路徑中的「BankAccounts」下面的類? –

1

那些xxxyyy代表包名。包通常由與磁盤包名稱相同的磁盤上的目錄表示。當您創建一個類文件時,您可以通過在文件頂部指出package xxx.yyy來指定該類所在的包。

參考沒有包名稱的"SomeClass"將嘗試在默認包中加載名爲SomeClass的類。

+0

我的「SomeClass」位於「E:\ java \ My Works \ BankAccounts \ src \ bkac」,bkac是包名。現在,如何在位於E:\ java \ My Works \ Inheritance \ src的類中調用它? –

+1

磁盤上的目錄結構並不重要,它取決於是否已經構建了jar或適當設置了類路徑。爲了使BankAccounts可用於其他工作,您需要將其包含在類路徑中,以使類加載器知道它可以找到該路徑中的類。 – Dervall

0

使用Class.forName,但請確保處理可能的ClassNotFoundException異常。這是一個運行時異常,所以並​​不意味着你需要捕捉它。這就是你將如何知道你是否通往班級的路徑是正確的。問題是,如果它找不到類,那麼有趣的事情可能會發生在你的代碼中。

Class.forName(com.my.package.ClassName)