2015-01-21 55 views
0

參照以下鏈接,我在運行時創建了類,http://blog.javaforge.net/post/31913732423/howto-create-java-pojo-at-runtime-with-javassist。現在我需要查看創建的類,這意味着它將在哪裏創建類文件?可以將它保存在磁盤/工作空間上嗎?在運行時創建Pojo並將其保存在磁盤上?

+1

只需調用['cc.writeFile()'](http://www.csg.ci.iu- tokyo.ac.jp/~chiba/javassist/html/javassist/CtClass.html#writeFile--)在你調用cc.toClass()之前或之後。有時它真的有助於閱讀文檔... – Holger 2015-01-21 13:38:38

+0

太好了。這是工作。但是有沒有什麼辦法可以用可讀格式生成文件? – Vinod 2015-01-21 13:49:28

回答

2

在調用cc.toClass()之前或之後,您可以調用cc.writeFile()來存儲包含生成的類的字節碼的類文件。

我不知道獲取源文件的等效操作,但是,您可能會考慮實際上已經生成源代碼(至少對於這些方法)並將它依次傳遞給Javassist的CtClass被編譯。

因此,使用相同的代碼來生成整個類的源代碼並不難,因爲您只需要連接這些方法,添加字段聲明並將其與類體相框。畢竟,生成一個源文件意味着只需編寫一個格式的文本文件,你已經很清楚...

0

你爲什麼要這麼做?它可以創建從POJO的文件,然後你會必須遵循本教程:

http://www.mkyong.com/java/how-to-write-an-object-to-file-in-java/。但是,你只能將這些字段的內容寫入文件。

+0

有很多日常的上下文將記錄寫入文件很有用。似乎很奇怪質疑OP的原因。 (優秀的鏈接btw - mkyong網站真的很有用) – Elemental 2015-01-21 12:22:48

+0

我在我的應用程序中使用了一些快速應用程序開發工具,所以基於POJO它將生成UI和模型。所以我想將生成的POJO保存在工作區中 – Vinod 2015-01-21 12:59:19

+0

我對作者的意思有點困惑。也許我感覺到'class-file'這個詞。應該不會懷疑這個問題,因爲序列化在編程中是非常普遍的做法。希望OP有幫助:) – 2015-01-21 13:00:54

2

獲取java對象並將其寫入文本類文件的過程稱爲序列化。這個語言有很好的支持。

Oracle對這些功能的文件可以發現here和教程here

一般來說這是很容易使用和充分理解,並提供了一些巧妙的功能,包括檢測一個程序的一個版本中保存的記錄,但不兼容的版本,試圖加載的能力。

此外這stack overflow question將對你有用。

相關問題