- JSON array: convert to Java JSONArray.
- JSONArray instance: convert to List.
- List: convert to Java JSONArray.
- JSONArray instance: convert to JSON array(String).
- ClassCastException.
- You can not use iterator() for enhanced for-loop.
當我們試圖從資料庫中查詢某個欄位的絕對值時,我們有兩種途徑。第一種是自定新的 Hibernate UserType ,再透過 HQL 查詢。
第二種則是利用 SQL abs() 函數,透過 SQL 查詢。
自定新的 Hibernate UserType 並不太難,僅需實作 UserType 介面,再套用一個範例來修改即可。 範例可參考 https://www.hibernate.org/388.html 。
...繼續閱讀HTTP 協定規範了 HTTP Status Code,這個狀態碼本身就包含了兩種表達形式,即三位數字的狀態碼,與文字訊息的狀態訊息。
加上 Enum 的定義後,在 Java 語言內就可以用三種表達形式,例如: 200, "Ok", HttpStatusCode.Ok。這實在是用來展示 Enum 用法的絕佳範例。
...繼續閱讀Enum(列舉) 在 C 語言時代就是賦予常數值可讀意義的簡便方法。 C# 也是一開始就提供 Enum 型別。 Java 則遲到 5.0 才提供。不過遲來總比不來好。
本文是 Java 語言的 Enum (列舉)型別與 Generic (泛型) 能力共同運作的筆記。 Java 的列舉型別是一種特殊型別,當我們要在列舉型別的場合中加上泛型能力時,需要運用一些不同的處理手段。我們也需要用到 Reflection (反射)。
...繼續閱讀所以當然這個 Java 老語言來說,自然沒得比了~
目前的開發方式或者是環境變遷,強調的是快速開發,以往那種慢工出細活的方式已經有點不合時宜了
metavige
有趣的是,Java一點都不老。我在 從中介編程與反射能力來談 Java 語言 列出十年世代的程式語言列表,Java 名列其中。它比Python 年輕3歲,跟Ruby, PHP, JavaScript 同年發佈。單純看語言的特性,Smalltalk這個40歲的程式語言都比 Java 靈活,這才是 Java 令我們老輩程序員驚奇的事。
...繼續閱讀如果你熟悉動態語言,你大概會嘗試使用 Java 的反射(reflection)來重構程式碼。我個人提供一個重構經驗,告訴你使用 Java 的反射時,你可能會感到失望。
這是一段透過 Hibernate 進行的資料更新動作。我從使用者端取得要更新的資料項,接著先向 Hibernate 查詢要更新的資料項目是否存在,存在的話再把新的資料內容更新進去。
...繼續閱讀公司這個月開始一件專案,我分配到用 Java 開發 web service 那一塊。 於是我親身體驗到一本書說的故事。
找一個很聰明,但是沒有 Java 經驗的開發者,讓他去學學 Java web 企業應用的那一堆技術,然後再問問他的想法。問題是兩方面的,首先,它很難;再者,失敗的後果很悲慘。
對我來說,或許這意味者程式碼應該在較高等級的抽象中,而我們無法在 Java 中做到這一點。
《超越 Java》(Beyond Java),Bruce Tate,O'Reilly出版
我不算聰明的開發者,但十幾年基本功練下來,功底還算紥實。OOP, ORM, Design pattern 這些概念都懂。Web 架構更是熟悉。儘管如此,當我試圖使用 Spring, Hibernate 等框架時,我完全無法理解為什麼 Java 語言可以把一件簡單的事搞成這麼複雜。這件事促成我寫出《不同程式語言的中介編程與反射能力系列文章》。
...繼續閱讀我來說個關於函數指標(在 C 語言中,function 就是一個 function pointer)與函數個體(function object)的小故事。這個故事還有一個 Java 版的,在本文的最後一節。只對 Java 語言有興趣的,可以先看後面的 Java 版,再回頭看前面。
有一天,"偉大的"架構設計師交代甲和乙兩位程序員共同負責撰寫一個小程式。這個程式配置了兩個陣列,一個是傳統的整數陣列,一個是整數vector。這個程式要將這兩個陣列的內容傾印出來。
在 libmapi 中,主要的封包結構是 mapi_object_t。使用 mapi_object_init() 建構內容。
主要的函數回傳值是 enum MAPISTATUS,並以 MAPI_E_SUCCESS 表示成功執行。
通常在呼叫 libmapi API 後使用 if (retval != MAPI_E_SUCCESS) return false; 判斷程式流程。
就設計架構而言, libmapi 運作時會管理記憶體資源。使用 MAPIFreeBuffer(), mapi_object_release() 便可釋放閒置的記憶體空間。
但就我實測結果顯示,它目前存有 memory lack 問題。以擷取連絡人清單為例,在擁有 256MB 實際記憶體與 384MB Swap 空間的 GNU/Linux 系統上,
大約在擷取200筆訊息後,就會因為記憶體不足而被系統中止程序。
openchangeclient -p rock --fetch-items=contact
這是目前使用 libmapi 開發大型客戶軟體時必須注意之處。其他Bug可以參考 Openchange開發工具補遺。
...繼續閱讀