我想轉換 java源代碼在編譯時就在將源代碼傳遞給編譯器之前。換句話說,我想創建一個預處理能夠改變Java代碼在編譯時轉換
"bla bla bla"
到任何其他代碼,例如:
new MyClass("bla", 3)
我的實際動機是爲了做字符串加密,explained here
有些人建議編寫自定義註釋處理器,但據我瞭解註釋:
- 它們可以用於生成新的類文件,但不會在傳遞給編譯器之前轉換現有的代碼。
- 它們似乎在包,類或方法級別工作,而不是方法體/實現。
有人建議使用像Spoon或ObjectsWeb ASM這樣的框架,但這些框架在現有代碼庫上學習和部署似乎很複雜。
我茁壯成長地爲這兩種方法找到一個簡單的java代碼預處理示例。
有沒有人看到任何智能的代碼轉換方式,沒有完全改變現有的大型代碼庫與多個常春藤模塊?註釋似乎是最好的方式,但我不明白該怎麼做。
[噴氣機(http://www.eclipse.org/articles/Article-JET/jet_tutorial1.html)可能會有所幫助(我不知道在哪個國家是這樣,但行之有效的一些多年前)。 JavaCC確實遵循相同的方法。 – home
你可以編寫一個自定義的Ant/Mavin插件,它首先執行加密,然後編譯你的代碼。 – Pushkar
我有同樣的問題。你可以分享你最終的結果嗎? – rahulmohan