[問題] 請問物件陣列這樣映射到pojo有搞頭嗎?
不知道大家會不會像我一樣,常常覺得物件陣例映射到 POJO 上的傳統寫法,
程式碼又臭又長呢?
bean.setAxxxx((String)objs[0]);
bean.setBxxxx((Date)objs[2]);
bean.setCxxxx((Integer)objs[3]);
bean.setDxxxx((String)objs[4]);
...
...
下略
如果沒有 fluent API 的時候,要映射的欄位一多,
這種程式碼寫起來令我覺得又更搞人,同時要對應欄位,又要強迫轉型,
還要設定索引。
在看到主流的幾個單元測試框架使用 AOP 或動態修改 byte code 的方法之後,
我萌生一種想法,想請問有沒有工具用這種方法實現過物件陣列映射到 Pojo上面︰
pojo = beanUtils.pojo(pojo).mapFromObjArray(objs)
.as(new Object[]{
pojo.getBxxx(),
pojo.getAxxx(),
pojo.getCxxx(),
....
}).execute();
就是在 呼叫 pojo 時,動態代理或修改 pojo 的內容,
使工具在呼叫 as 時,透過物件陣列對應欄位並自動轉型。
特點是不用自己一個一個轉型,而且欄位一多時,
還很方便在同一行寫下好幾欄的設定,
也不會像 dynaBean 的解決方式一樣,用欄位名稱字串作 key 設定對應
而無法透過 IDE 的功能自動完成,容易錯誤。
請問大家有嚐試過這種做法,甚至有工具已經開發出來了?
還是有更好的映射方式呢?
謝謝大家~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.98.33
推
02/12 20:40, , 1F
02/12 20:40, 1F
hibernate 查詢, 版本是 3.1.3
→
02/12 22:27, , 2F
02/12 22:27, 2F
動態語言跟靜態語言很難比 >.< 這方面是靜態語言不好用的地方
不然我何嚐不想在方法參數用 json 的寫法來傳參數, 多好用
推
02/12 22:31, , 3F
02/12 22:31, 3F
→
02/13 00:03, , 4F
02/13 00:03, 4F
對啊~ 是沒錯...
但你看這還在用 hibernate 3.1 的專案,看起來像是能換 groovy 的樣子嗎?
各框架或依賴能用更新的版本就偷笑了
→
02/13 14:02, , 5F
02/13 14:02, 5F
→
02/13 14:04, , 6F
02/13 14:04, 6F
是啊~ 我也知道, 但這是政治問題不是相容性問題啊~
不過還是謝謝您, 至少現在我知道 Groovy 有解決這類問題的優雅方法,
更有動力去學了
→
02/13 17:46, , 7F
02/13 17:46, 7F
→
02/13 17:56, , 8F
02/13 17:56, 8F
※ 編輯: dream1124 來自: 36.228.110.102 (02/13 22:24)
→
02/15 10:00, , 9F
02/15 10:00, 9F