[問題] Java Intropection的代價是否很貴?

看板java作者 (全新開始)時間11年前 (2014/01/22 20:48), 編輯推噓1(107)
留言8則, 2人參與, 最新討論串1/2 (看更多)
會問這個問題,是因為好像曾經聽過這類說法 再加上最近看過 apache BeanUtils 的原始碼以後, 發覺原來就算只是物件的屬性蓋來蓋去也可以這麼複雜.... 既是查找,然後定義再比對,最後還要快取 密密麻麻程式碼讓我不知如何下手... 其實我想解決的問題不複雜啊~ Orz 現在很流行讓屬性的 setter 有回傳值,然後型態設定為物件自己, 接著理所當然在設定完屬性後回傳自己,方便使用者連續呼叫 setter 設定屬性。 只是公司多年長期維護下來的案子已經很舊了 裡面依賴的 struts1 , apache BeanUtils 2.1, 都不覺得這種 setter 是合理的, 讓我想把物件的 setter 回傳自己的構想很難實行.... 因此有自行實現 BeanUtils 工具的想法 只是看到 BeanUtils 的原碼令我有些卻步, 想請問有什麼方法可以解決像這樣的需求呢? 不管是開發新工具還是改舊的工具,請問大家會怎麼做呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.230.164.144


01/22 21:04, , 2F
看其他專案的 api 設計同時提供這二種 style,反正 setter
01/22 21:04, 2F

01/22 21:05, , 3F
用 ide 去 generate 很快啊。只是,我們真的需那麼多 setter
01/22 21:05, 3F

01/22 21:06, , 4F
嗎?以前小時候不懂事,都勾全選把所有東西 gen 出來 >"<
01/22 21:06, 4F
Setter 很容易產生, 只可惜後續在不同 bean 之間傳值不是很方便 偏偏現在專案有提供的工具只接受 void setXXX 這種寫法

01/22 21:41, , 5F
所以,你可以同時提供二種 style 啊xd
01/22 21:41, 5F

01/22 21:42, , 6F
雖然我不覺得是個好建議就是了(不過 aws sdk 是這麼弄的)
01/22 21:42, 6F
在有些比較舊的 BeanUtils 定義中, 大概會覺得這不算是正常 Java Bean的屬性吧~

01/22 22:55, , 7F
歡迎使用Grails~ XDDDDDD
01/22 22:55, 7F
公司開發很多年, 天天投入營運的專案了, 依賴的工具庫和框架某方面來說也依賴得很深, 成為系統一部分, 不是說改就能改的 ※ 編輯: dream1124 來自: 36.230.164.144 (01/22 23:46)

01/23 08:24, , 8F
腦筋要轉一下啊,不要用 setter naming 就好了啊。
01/23 08:24, 8F
文章代碼(AID): #1ItxuEYm (java)
文章代碼(AID): #1ItxuEYm (java)