Supposons ce qui suit. Il y a une superclasse ou une interface déclarant une méthode: Base.doSmth()
. Il existe également une classe héritée implémentant cette méthode: Inherited.doSmth()
. Nous avons la réflexion (Method
) du Inherited.doSmth()
et nous savons quelle est la classe de base afin que nous puissions accéder à sa réflexion (Base.class
). La question est: comment obtenir la réflexion sur la méthode Base.doSmth()
? Bien sûr, nous pouvons parcourir toutes les méthodes de Base
et en trouver un par nom, par paramètres et par type de retour, mais peut-être y a-t-il déjà une solution. Tout se passe dans une classe liée à Spring, donc le code est déjà couplé à Spring, donc utiliser ses utilitaires est correct.Comment obtenir la méthode déclarée dans une classe parente spécifique?
Merci.
C'est OK, bien sûr, mais je pense qu'il peut y avoir une certaine méthode util de Spring qui rend ce travail, comme 'org.springframework.aop.support.AopUtils.getMostSpecificMethod()'. –
oh, Spring n'a aucune méthode d'utilité (mai je ne sais pas) mais Apache Commons Lang3 ont une classe utilitaire avec le nom ClassUtils et cette classe a la méthode avec getAllSuperclasses, et d'autres méthodes utiles, peut-être cette classe utile pour vous . – MJM
Merci MJM, j'étudierai Apache Commons Lang, sinon fais en itéraçant manuellement le tableau 'Method []'. –