2017-06-21 81 views
-1

我有以下問題:是否可以在java中的包中應用反射?對於例如:我有兩個包 包裝首先\ SRC A類 B類 類TestReflection 套餐二\ SRC d類 E類動態顯示軟件包的類名單

現在在班上TestReflection,我寫的代碼來獲取所有動態使用Reflection API提供一個包的類名。它只在我給包First/src而不是用Packge Second \ src的時候有效。任何人都可以幫我解決這個問題。我需要獲取所有包的類名,而不管我的代碼是在哪裏寫的?

我粘貼了我的程序截圖(在這兩種情況下),以及左側的文件夾路徑和右側的控制檯輸出。請讓我知道是否需要其他任何東西。 Same Package

Different Package

+3

請告訴我們你的代碼,你所得到的確切的錯誤消息。 – Marvin

+0

是Java Reflection可以跨包使用。 –

+0

我編輯了我的問題,上面粘貼了我的程序screenshots.Kindly看看他們... @ Marvin,@ Matej Kormuth這是我在這個論壇上的第一個問題..所以請原諒我對我的mutliple編輯:) –

回答

0

你居然沒有不同的包。您有相同test兩個不同項目。默認情況下,不同項目中的類無法看到對方,因此反射失敗。

你需要第二個項目添加到第一個項目的build pathAdding project to Java Build Path

+0

@馬文...即使包名稱不同(即不測試),也會出現同樣的問題。這僅僅是一個例子,因此我只給出了兩個項目(冷杉,第二)..但是,最終我需要從許多動態項目。還有什麼可以做到的。因爲我不能爲每個項目構建路徑(因爲在運行時可能會有很多)...我正在嘗試開發一個應用程序來檢查java的編碼約定。這是它的要求之一。 –

+0

@PrasunaVaddi您可以使用Eclipse的[ResourcesPlugin]獲取所有項目(http://help.eclipse.org/mars/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse %2Fcore%2Fresources%2FResourcesPlugin.html),但我認爲你的項目本身需要是一個插件,它顯然只能在Eclipse中工作。不過,這是一個不同的話題,你可能會更好地提出一個專門針對這個問題的新問題。 – Marvin

+0

包裝是否相同或不同 - 反射並不在乎。這是不同的項目(更具體地說:不同的課程路徑)阻止了它的工作。 – Marvin