清單24 TXTExportableGenerator
public class TXTExportableGenerator extends ExportableGenerator {
public TXTExportableGenerator(PrintWriter out) {
super(out);
}
@Override
protected void outputSimpleField(PrintWriter out, FIEld f,Object obj) {
out.print(f.getName());
out.print("=");
out.print(value(f,obj));
out.print(";");
out.println();
}
@Override
protected void outputFIEldHeader(PrintWriter out,Object e) {
}
@Override
protected void outputFIEldFooter(PrintWriter out,Object e) {
//out.println(e.getClass().getName()+":");
}
}
在這個例子中,我們將一個Employee對象的部分內容輸出到文件C:\test.output中。圖 19顯示了這個例子的輸出結果。
圖12 輸出結果
通過這種方法,我們可以動態生成Employee對象的域輸出,而不需要在程序中寫明要 輸出哪些確定的域。如果需要更為豐富的格式,我們可以定義多個注釋類型。通過對不同 注釋以及屬性的解析,實現格式化的文件輸出。
2.4注釋類型的小結
所謂元數據,指的是關於信息的信息。一般而言,代碼分析工具,測試工具或者部署 工具會使用元數據來產生配置信息以及使用配置信息產生控制邏輯。這些工具通常使用 Java的反射特性,重構元數據的信息,並對這些信息進行解釋。
新的技術會不斷改變程序設計和開發人員的設計思想。那麼注釋(Annotation)給我 們帶來了什麼呢? 僅僅在代碼分析,或者是開發測試框架和部署框架的時候才有用麼? 我認為並不是這樣。從上面的例子可以看出,注釋(Annotation)的應用范圍其實是很廣 泛的。在我們的應用中充分的利用元數據,可以提高的軟件的質量和可維護性。