2011-12-22 34 views
2

我試圖自動生成一些EJB服務代碼,它們是Java DAO類的包裝器。 DAO類實現DAO接口,但也有自己的公共方法。這個DAO層由另一個團隊實施,所以我無法玩弄它。檢查一個方法是否是使用反射的接口的重寫方法

我正在使用CodeModel API生成代碼。我得到每個DAO類,現在想創建EJB服務代碼。使用java反射我想檢查在DAO類中聲明的方法是否是接口的重寫實現方法。無論如何,我可以檢查嗎?

回答

1

1)如果重寫方法與@Overridden註釋,比你可以通過這些方法進行迭代,並使用該API查詢自己的註解:http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Method.html#getDeclaredAnnotations%28%29

2)如果沒有註解,我認爲,唯一的辦法是遍歷父類和接口,並比較方法簽名,在那裏用你的類中的簽名聲明。

+0

問題是有沒有註釋 – 2011-12-22 06:44:12

+0

比你不能檢查註釋和需要比較簽名,正如我在2)中所猜到的那樣。其中一個例子:http://robsanheim.com/2005/12/08/using-reflection-to-determine-if-a-method-is-overloaded/ – dbf 2011-12-22 07:32:40

+0

是的,我已經看到了。並實施了第二條路線。 – 2011-12-22 09:52:53

相關問題