2014-02-23 69 views
-1

是否可以使用cglib來支持此解決方案?如何使用cglib將多個實現添加到java類?

interface I { 
void foo(); 
void boo(); 
} 

abstract class B implements I { 
    foo(); 
} 

abstract class C implements I { 
    boo(); 
} 

abstract class D extends B { 

} 

代碼

D d = new D(); 
d.foo(); 
d.boo(); 
+0

@ -1,我該如何改善這個問題? – Njax3SmmM2x2a0Zf7Hpd

+1

他們downvote,因爲他們不明白。當您擁有OCJP時,您將成爲Java Expert。他們是Java專家,不知道你在說什麼。 – IAdapter

回答

1

是的,這是CGLIB沒有問題。我甚至試圖做到這一點,這對我來說不成問題。我使用cglib-nodep-2.1_3.jar。

如果你想d.boo();什麼都不做,我在這裏看到沒有問題。

如果你想實現類似Java8默認方法的東西,那麼傳遞一個對象的狀態會有一點棘手。

唯一不同的是,您需要通過增強器創建對象。如果你想改變「新的D();」表現你應該嘗試AspectJ。我認爲它可以使它與AspectJ一起工作,但eclipse的compliator會一直給你帶來問題。它應該可以忽略編譯器錯誤。

相關問題