我正在做一個項目,實質上是一個用戶爲很長/重複的代碼創建宏的方式,以便他們可以將這些宏放入其代碼中以提高可讀性並鼓勵可重用性。創建Java註釋以代碼替換令牌
該項目分爲兩個區域:一個RCP應用程序,其中用戶構建宏並將其保存到文件中,以及一個用戶可插入宏的eclipse插件。
RCP應用程序已經很好地發展了,但現在我已經到了想讓java看一段代碼的真正位置,並且在編譯時去'噢,那段代碼意味着這個'。
例如,用戶可能已經創建了一個代碼爲System.out.println("Hello World");
的標識符爲macro1
的宏。他們想用它在自己的foo
類看起來像:
class foo{
//lots of java....
macro1
//lots more java
}
我希望用戶運行他們的階級,而當Java的編譯它取代macro1
與它的價值。
我一直在研究這一段時間,並在JavaCC上稍微閱讀一些內容,然後看着螞蟻替換任務,但我覺得我想要創建自定義註釋以通知Java,該字符串在應該將註釋轉換成/替換爲位於特定文本文件中的一段Java代碼。希望結局如下:
@ExpandMacro
macro1
對我來說,它似乎是可能的,但我不知道如果我只是過於樂觀! :)
另外我的擔心之一是如何將其作爲插件可部署?如果我創建了一個自定義註釋,我將如何讓它可供用戶使用?
任何建議/見解將是非常有益的!
編輯:我也看過Project Lombok這看起來非常有趣。但由於Lombok項目所需的設置數量,我又擔心可部署性。
你希望將java代碼(重複代碼,或稱爲macro1)插入到任意位置?或者更像是,在運行函數X之前/之後調用此宏?因爲我想知道AspectJ是否可以在這裏幫助... – user1766760 2013-03-15 22:47:57
你可以在eclipse中使用代碼模板嗎? http://www.java-tips.org/other-api-tips/eclipse/how-to-add-your-own-code-template-in-eclipse.html – Rohit 2013-03-15 22:51:32
@ user1766760是的我正在尋找插入這些宏放入任意位置以表示可以位於文本文件中的某些預定義代碼。 – SteWoo 2013-03-15 23:10:07