記錄讀書心得, 內容不一定和書上一致, 有些是我自己的看法。
1.5 後有了 annotations, 方便將資訊加入 constructor、method、field、local variable 等處。官網有一個簡單的例子, 說明 annotations 的用處; 書上也是用 @Test 為例, 但寫得更清楚, 講比較多例子。
了解 annotations 強大之處最快的方法就是看 JUnit 4 的用法 (只要六十秒!!), 簡單易懂又沒有繼承class 的負擔, 也不用擔心打錯字時 compiler 抓不出錯誤 (像是 test 寫成 tset)。JCommander 也是不錯的例子, 很清楚地表示命令列參數, 滿好用的命令列框架。
btw, 初學 annotations 時, 我不太能抓到它的意思。搞半天才明白它只能填入 meta data, 還要另寫程式使用 reflection 讀出 annotations 才有用處。也就是定好規格, 用 annotations 填入規格的細節資訊, 再用另外的工具讀出 annotations 的內容做對應處理。
乍看之下, Python 的 decorator 語法和 annotations 很像, 但彈性多了: decorator 本身就是操作方式, 而不是 meta data, 方便使用; 再加上 Python 的 function 是 first-class object, 不需使用「reflection」即可操作 function, 方便實作。
訂閱:
張貼留言 (Atom)
在 Fedora 下裝 id-utils
Fedora 似乎因為執行檔撞名,而沒有提供 id-utils 的套件 ,但這是使用 gj 的必要套件,只好自己編。從官網抓好 tarball ,解開來編譯 (./configure && make)就是了。 但編譯後會遇到錯誤: ./stdio.h:10...
-
UbuntuCompilationGuide – FFmpeg 說明如何在 Ubuntu 上安裝 ffmpeg 並包含 libx264 (支援 H.264)。全部安裝和移除的指令都有了, 超方便的。實測的結果, 用 libx264 壓出來的檔案又小畫質又好, 是必要的元件。 ...
-
最近有需求讀 C/C++ 的東西, 試了 ctags, cscope 覺得不理想。問了一下收到許多回應 ( G+ 、 plurk ), 真是太感謝大家了, 減少入門摸索的時間。 試用的感想如下: grep 優點 : 好上手 缺點 : 陽春 安裝 : 內建於 L...
-
最近被迫在短時間內學會 strace、gdb 這些之前一直用不到的重兵器, 都還不熟練就是了。剛好使用 hgsubversion 時有些困擾, 雖說它和 svn 整合得很好, 無縫接好 pull / push , 但它不會顯示 mercurial 對應到的 svn 版本, 平...
使用 reflection 讀出 annotations ? how? and why?
回覆刪除見官網例子, annotations 本來就是用 reflection 讀出來的 http://download.oracle.com/javase/1.5.0/docs/guide/language/annotations.html
回覆刪除