2010-10-16 64 views

回答

1

看看XStream,它很容易序列化到/從XML。

+1

我認爲他希望能夠構建Java對象,即使他的代碼從未聽說過最初的序列化類。 – Pointy 2010-10-16 00:41:24

1

這在技術上是可行的,但是(除非有人能指出現有的解決方案),這將是很多工作。 (你可以通過生成源代碼並在運行時編譯它來做很多聰明的事情......例如。)

但是說實話,這可能不是一件有用的事情。一旦你將XML對象作爲一個全新的Java類的實例加載,你將很難使用它。首先,您現有的靜態編譯的應用程序只能反射地訪問新類的字段和方法。

IMO,您最好將XML加載到通用的Map對象或Properties對象中。或者,只需使用由現成的XML解析器創建的DOM。

或者,獲取XML的DTD,XSD或其他某種「模式」,並從中生成Java類。然後可以編寫和靜態編譯你的應用程序來調用這些類。

0

Java不是一種動態語言,因此您不能動態創建類,但術語「創建」在您的問題中沒有很好定義。

如果你的意思是實例化和初始化,可以用類似的庫非常容易做到系列化通過:

如果你的意思是你想在運行時在JVM中實際創建一個類文件,你可能需要查看更多動態的語言,這些語言可以在像Groovy或JRuby等JVM中運行。Groovy有一些非常酷的dynamic功能。

相關問題