我想使用 CGLIB 代理將我自己的可重用 equals() 方法添加到現(xiàn)有對(duì)象。這些對(duì)象不一定實(shí)現(xiàn)任何接口,我需要能夠?qū)⒋韺?duì)象轉(zhuǎn)換為原始類(無需獲取代理的目標(biāo))。不幸的是,CGLIB 似乎實(shí)現(xiàn)了自己的 equals() 方法并確保只調(diào)用該方法:有一個(gè)私有靜態(tài)類 (EqualsInterceptor),其方法 intercept() 實(shí)現(xiàn)了合理的邏輯來比較代理對(duì)象。問題是這個(gè)方法最后將比較委托給目標(biāo)對(duì)象:我需要重用一些目標(biāo)類沒有實(shí)現(xiàn)的邏輯。使用標(biāo)準(zhǔn)代理,我能夠攔截對(duì) equals() 方法的調(diào)用并執(zhí)行我的邏輯。問題是這些代理不能轉(zhuǎn)換為原始類??磥碇荒茉贑GLIB庫中重寫一些類了。這似乎不是一個(gè)好主意。
在 cglib 代理上覆蓋 equals
夢(mèng)里花落0921
2023-06-04 15:26:52