2011-08-07 175 views
4

我在尋找不錯的(java)代碼生成引擎。 我發現了cglib,但它的記錄非常糟糕,我不太確定它可以生成實際的java類(文件)並且只能生成動態類。如果我錯了,也許有人知道有一個例子的鏈接。Java代碼生成

羅馬

+0

你想從什麼來源生成? UML? – Stephan

+1

cglib是Spring用來生成動態代理的東西。如果對他們來說足夠好,那對你來說應該足夠好。是的,您可以使用cglib生成實際的Java類。這就是它的目的。我會更仔細地重新閱讀該文檔。 – duffymo

+0

它應該是源代碼不可知的,它也可以是UML或XML,或者只是一些代碼BL和duffymo,我查看了Cglib的源代碼,無法找到打印實際類的方法 – Roman

回答

4

看一看codemodel,成功爲我的項目使用。

+0

偉大的...也許我可以重寫它變得甚至人類可用,但絕對是一個開始..! – Roman

4

沒有真正嘗試,但你可能想看看另一種代碼生成Java框架稱爲Javassist進行,其中也有相當深入的tutorial。此外,Hibernate將代碼生成框架從cglib更改爲javassist。引用,解釋原因:

事情的一個簡單事實是CGLIB的開發已基本停止。它發生了。無論出於何種原因(原因是他們自己的),開發人員都將轉向新的優先事項。

Source

+0

看來,它只是僅適用於字節碼操作 – Roman

+1

@羅曼你是對的,抱歉誤會。然而,在google搜索一下之後,我發現有人命名爲Michael Schnell設法將源代碼添加到Javassist。 [證明](http://java.dzone.com/articles/adding-source-code-generation) – jFrenetic