2011-12-22 33 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

相关问题