——此文章摘自《自己動手寫開發工具
基於Eclipse的工具開發》定價
¥
特價
¥
詳細>>
http://track
linktech
cn/?m_id=dangdang&a_id=A
&l=
&l_type
=
width=
height=
border=
nosave>
public String generate(Object argument)
{
final StringBuffer stringBuffer = new StringBuffer();
stringBufferappend(TEXT_);
stringBufferappend(argument);
stringBufferappend(TEXT_);
stringBufferappend(TEXT_);
return stringBuffertoString();
}
}
可以看到JET生成的代碼采用的也是StringBuffer拼裝的形式注意此處生成的代碼是無法手工修改的因為每次修改以後保存的時候JET會自動把代碼替換成未修改之前的代碼
() 測試模板代碼
在EnumCodeGenUtils中創建main方法然後輸入如下代碼
EnumCodeGenerator gen = new EnumCodeGenerator();
Systemoutprintln(gengenerate(Eclipse));
運行之後控制台中就打印出了Hello Eclipse!
我們來對上面的模板代碼和測試代碼做一下簡要的分析
① <%@ jet package=comcownewenumgeneratorwizards class=EnumCodeGenerator %>
這是模板的頭部分以@ jet開頭這部分主要聲明此模板的有關信息比如生成代碼的包路徑類名導入的類等package屬性定義的就是生成代碼的包路徑而class屬性定義的是生成的類名
② Hello <%=argument%>!
這部分就是模板的正文了和JSP語法一樣顯示一個變量的方法是<%=變量名>注意這裡的變量argument是有特殊含義的它表示傳遞給模板的參數
③ Object參數
代碼生成器生成代碼的方法是generate因為我們經常需要傳遞一些參數給代碼生成器所以generate方法有一個類型為Object的參數此參數在模板中可以用argument取得
對JET有了一個感性的認識之後我們就來通過實戰來操練一下上一節中EnumCodeGenUtilsgetEnumSourceCode方法的實現為空這一節我們就來完成這項關鍵性的工作
經過分析我們發現需要傳遞給模板代碼如下個參數才可以正確地輸出代碼枚舉類的包名枚舉類的類名枚舉類的項因為模板代碼的generate方法只接受類型為Object的一個參數所以我們需要把這個參數封裝到一個JavaBean中如下定義JavaBean
right>[http://developcsaicn/Java_Eclipse/htm>] [http://developcsaicn/Java_Eclipse/htm>] [http://developcsaicn/Java_Eclipse/htm>] [] [http://developcsaicn/Java_Eclipse/htm>] [http://developcsaicn/Java_Eclipse/htm>]
From:http://tw.wingwit.com/Article/program/Java/ky/201311/29010.html