Java 使用反射检查方法是否是接口的重写方法
我试图自动生成一些EJB服务代码,它们是围绕Java DAO类的包装器。DAO类实现DAO接口,但也有自己的公共方法。这个DAO层是由另一个团队实现的,所以我不能使用它 我正在使用CodeModelAPI生成代码。我得到了每个DAO类,现在想创建EJB服务代码。使用java反射,我试图检查DAO类中声明的方法是否是接口的重写实现方法。还有什么我可以检查的吗?1)如果重写的方法带有@Overrided annotation,那么您可以迭代这些方法,并使用此API检查它们的批注:Java 使用反射检查方法是否是接口的重写方法,java,Java,我试图自动生成一些EJB服务代码,它们是围绕Java DAO类的包装器。DAO类实现DAO接口,但也有自己的公共方法。这个DAO层是由另一个团队实现的,所以我不能使用它 我正在使用CodeModelAPI生成代码。我得到了每个DAO类,现在想创建EJB服务代码。使用java反射,我试图检查DAO类中声明的方法是否是接口的重写实现方法。还有什么我可以检查的吗?1)如果重写的方法带有@Overrided annotation,那么您可以迭代这些方法,并使用此API检查它们的批注: 2) 如果没有注释
2) 如果没有注释,我认为,唯一的方法是迭代父类和接口,并将其中声明的方法签名与类中的签名进行比较。问题是可能有注释,也可能没有注释,而您无法检查注释,需要比较签名,如我在2)中所述。其中一个例子是:是的,我看到了。并实现了第二个路由。这不起作用,因为@Override的保留是源代码,所以它不会添加到字节码中,因此在运行时不可用。