2010-08-17 55 views
0

我處於一種根本無法使用反射的情況。不用說,我也需要動態創建類。因爲那裏已經創建了一些可以創建虛擬java對象的東西。就在我頭頂之後,一個java虛擬對象將是...將一個字符串映射到對象,其中字符串是名稱,對象是對象本身。當然,您可以在其中添加各種元數據,例如包含隱私等的其他地圖。是否存在類似這樣的內容?此外,而不是做我上面描述的方式(使用地圖等),如果我創建一個二進制形式的類怎麼辦?Java虛擬對象

+1

爲什麼你不能只寫你寫的東西? – danben 2010-08-17 18:03:42

+1

爲什麼你不能使用反射?這是一項家庭作業嗎? – 2010-08-17 18:07:38

+1

由於受到環境的限制。我正在使用未設置所有權限的JNLP文件。不,這不是功課。我的同事通過螞蟻實施了一項工作。我只是想知道是否可以解決這樣的問題,而不需要編輯構建腳本。 「爲什麼你不能只寫你寫的東西?」我可以,我只是想從別人那裏得到一些關於這個想法的反饋。如果它已經完成,從頭開始沒有意義。 – Boltimuss 2010-08-17 19:15:34

回答

1

可以使用編譯器API從源代碼編譯一個類,儘管我從來沒有這樣做過。請參閱javax.tools包。

也可以從類數據的字節數組中加載一個類。請參見java.lang ClassLoader。

但是,爲什麼不按照您的建議去做並且有Map<String,Object>

+0

我正在考慮這個問題,但是想先聽聽其他人的想法。我正在辯論我應該去哪個方向......我應該使用Map方法,還是使用字節碼構建一個類,然後將引用移交給它。我認爲地圖方式可能是更好的方法,我可以包含隱私等其他元數據。 – Boltimuss 2010-08-17 19:17:36

0

你可以看看從apache commons beanutils使用Dynabean

不知道它會提供多少價值超過普通地圖。